Waarde uit tabel omzetten naar lijst

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • JanDoedel1
  • Registratie: Februari 2025
  • Laatst online: 21-02 18:44
Goedemorgen,

In een Excel bestand wil ik gegevens uit een tabel omzetten naar een lijst. In kolom A heb ik een rij met alle codes van de producten. In rij 1 heb ik alle weken staan wanneer deze weg moeten. Het aantal codes en aantal weken zijn niet altijd gelijk.

Nu zou ik graag een lijst willen maken met de code, daarachter de waarde uit de tabel met tot slot de week erbij in de derde cel.

Hoe zou ik dit kunnen omzetten?

Alvast bedankt!

Alle reacties


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Het zou handig zijn als je een voorbeeld zou plaatsen.

Acties:
  • 0 Henk 'm!

  • JanDoedel1
  • Registratie: Februari 2025
  • Laatst online: 21-02 18:44
Hoe kan ik een bestand bijvoegen?

Acties:
  • 0 Henk 'm!

  • JanDoedel1
  • Registratie: Februari 2025
  • Laatst online: 21-02 18:44
Afbeeldingslocatie: https://tweakers.net/i/EJ5bVA8r5ZShiG9QQGulEcE_sbE=/800x/filters:strip_exif()/f/image/fkfMbjgQLC0z8220fddWFwbX.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 09-05 16:40
Begrijp ik nu goed dat je het volgende wilt bereiken?

Afbeeldingslocatie: https://tweakers.net/i/57_n6so4vw-NI8vSYu7-E_G4_HY=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/WakD7pkND8pV2cf6LA5Pej4G.png?f=user_large

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Ik denk dat de vragensteller bedoelt zoals je in onderstaande afbeelding ziet.
Dat kun je bereiken door met een macro met 2 for-nextlussen alle rijen en kolommen te doorlopen en bij aanwezigheid van een waarde die (samen met bijbehorende code en week) naar een ander blad te kopiëren.
Afbeeldingslocatie: https://tweakers.net/i/DG_Hj-ugq5xT2H3C4hs_yeXl0B4=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/gIDbnt1THkB3iS1R1O1e7qBC.png?f=user_large
Enzovoort t/m code 140.

Acties:
  • 0 Henk 'm!

  • JanDoedel1
  • Registratie: Februari 2025
  • Laatst online: 21-02 18:44
dix-neuf schreef op dinsdag 11 februari 2025 @ 12:03:
Ik denk dat de vragensteller bedoelt zoals je in onderstaande afbeelding ziet.
Dat kun je bereiken door met een macro met 2 for-nextlussen alle rijen en kolommen te doorlopen en bij aanwezigheid van een waarde die (samen met bijbehorende code en week) naar een ander blad te kopiëren.
[Afbeelding]
Enzovoort t/m code 140.
Klopt inderdaad, dit is wat ik zoek! Alleen weet ik niet hoe ik 2 for-nextlussen maak. Zou je dit kunnen toelichten?

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
JanDoedel1 schreef op dinsdag 11 februari 2025 @ 12:10:
Alleen weet ik niet hoe ik 2 for-nextlussen maak. Zou je dit kunnen toelichten?
Je bedoelt waarschijnlijk dat ik dan de gehele macro schrijf. Dat zou kunnen, maar dat duurt dan (in mijn geval) weer een paar uur .Waarom zou iemand dat voor een 'Jan Doedel' ?

Acties:
  • 0 Henk 'm!

  • JanDoedel1
  • Registratie: Februari 2025
  • Laatst online: 21-02 18:44
dix-neuf schreef op dinsdag 11 februari 2025 @ 12:18:
[...]
Je bedoelt waarschijnlijk dat ik dan de gehele macro schrijf. Dat zou kunnen, maar dat duurt dan (in mijn geval) weer een paar uur .Waarom zou iemand dat voor een 'Jan Doedel' ?
Nee, dat is natuurlijk niet wat ik verwacht. Maar is er ergens een goede handleiding hiervoor te vinden? Ik heb hier namelijk geen ervaring mee.

Acties:
  • 0 Henk 'm!

  • Jaer288
  • Registratie: Mei 2005
  • Laatst online: 09-05 12:50
Net even vlug getest en volgens mij kom je hier een heel eind mee.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub MatrixNaarTabel()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cel As Range
    Dim outputRow As Long
    Dim lastRow As Long
    Dim lastCol As Long
    
    ' Instellen van het werkblad
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Verander "Blad1" naar de naam van je werkblad
    
    ' Bepaal de laatste rij en kolom in de matrix
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    
    ' Definieer de uitvoer rij voor de tabel
    outputRow = 1
    
    ' Loop door de matrix om de tabel te vullen
    For Each cel In ws.Range(ws.Cells(2, 2), ws.Cells(lastRow, lastCol))
        If cel.Value <> "" Then
            ws.Cells(outputRow, lastCol + 2).Value = ws.Cells(cel.Row, 1).Value ' Waarde uit kolom A
            ws.Cells(outputRow, lastCol + 3).Value = ws.Cells(1, cel.Column).Value ' Waarde uit bovenste rij
            ws.Cells(outputRow, lastCol + 4).Value = cel.Value ' Ingevulde waarde
            outputRow = outputRow + 1
        End If
    Next cel
End Sub

Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 01:34

hamsteg

Species 5618

Denk dat je dit zelfs zonder macro's kun doen maar anders zijn het twee simpele loopjes die letterlijk rij en kolom doorlopen en als er een waarde staat dit dit samen met regel 1 en colom 1 in een tweede tabblad bijhouden.

Update: zie hierboven.

[ Voor 13% gewijzigd door hamsteg op 11-02-2025 12:43 ]


Acties:
  • +3 Henk 'm!

  • SandaX
  • Registratie: November 2003
  • Laatst online: 08:28

SandaX

Nicht Ärgern nur wundern

Of je gebruikt unpivot in powerquery

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
JanDoedel1 schreef op dinsdag 11 februari 2025 @ 12:33:
[...] is er ergens een goede handleiding hiervoor te vinden? Ik heb hier namelijk geen ervaring mee.
In de oudere (stand-alone-) versies van Excel had je in de helpfile een complete handleiding, die je als cursus kon gebruiken. In de nieuw(st)e versies moet je het vooral online zoeken. Dit: (klik hier) is een goede vba-site van Microsoft.

Acties:
  • +1 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 22:55
Wat @SandaX zegt is tegenwoordig toch een veel makkelijkere oplossing dan VBA.
  • Ga naar het Data tab in je Ribbon
  • Kies voor "From Table/Range" in de "Get and Transform data" sectie
  • Gebruik je rechter muisknop op de kop van de 1e kolom en selecteer "Unpivot other columns"
  • Kies "Close&Apply"
Klaar!
Pagina: 1