• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Kolom-gegevens omzetten naar rij-gegevens

Status
Niet open voor verdere reacties.

JavaRookie

Gebruiker
Lid geworden
13 jan 2010
Berichten
7
Momenteel heb ik dit werkblad in Excel:

kolom A kolom B kolom C Kolom D Kolom E
rij 1 docent1 GODSD 2B1 2B2
rij 2 docent1 GODSD 1C
rij 3 docent2 GODSD 6EMT 6EWI 6MTW
rij 4 docent3 LO 6EMT



Graag zou ik de kolommen D en E als nieuwe rij zien, waarbij de kolommen A en B overgenomen worden. Het resultaat zou er zo moeten uitzien:

kolom A kolom B kolom C Kolom D Kolom E
rij 1 docent1 GODSD 2B1
rij 2 docent1 GODSD 2B2
rij 3 docent1 GODSD 1C
rij 4 docent2 GODSD 6EMT
rij 5 docent2 GODSD 6EWI
rij 6 docent2 GODSD 6MTW
rij 7 docent3 LO 6EMT


Alvast bedankt voor jullie hulp.
 
Probeer het zo eens

Code:
Sub VenA()
With Blad1
    ar = .Cells(1).CurrentRegion
    ReDim ar1(UBound(ar) * (UBound(ar, 2) - 2) - 1, 2)
    For j = 1 To UBound(ar)
        For jj = 3 To UBound(ar, 2)
            If ar(j, jj) <> "" Then
                ar1(t, 0) = ar(j, 1)
                ar1(t, 1) = ar(j, 2)
                ar1(t, 2) = ar(j, jj)
                t = t + 1
            End If
        Next jj
    Next j
    .[h1].Resize(UBound(ar1) + 1, UBound(ar1, 2) + 1) = ar1
End With
End Sub
 
Code:
Sub tsh()
    Dim Br
    Dim i As Long, j As Long
    
    Br = Sheets("Sheet1").Cells(1).CurrentRegion
    With CreateObject("System.Collections.Arraylist")
        For i = 2 To UBound(Br)
            For j = 3 To UBound(Br, 2)
                If Br(i, j) <> "" Then .Add Array(Br(i, 1), Br(i, 2), Br(i, j))
            Next
        Next
        Sheets("Sheet2").Cells(2, 1).Resize(.Count, 3) = Application.Index(.ToArray, 0)
    End With
            
End Sub
 

Bijlagen

  • JavaRookie.xlsm
    14,9 KB · Weergaven: 28
Laatst bewerkt:
Super! Dit is precies wat ik nodig had.

Heel erg bedankt voor de snelle reactie!:thumb:



Probeer het zo eens

Code:
Sub VenA()
With Blad1
    ar = .Cells(1).CurrentRegion
    ReDim ar1(UBound(ar) * (UBound(ar, 2) - 2) - 1, 2)
    For j = 1 To UBound(ar)
        For jj = 3 To UBound(ar, 2)
            If ar(j, jj) <> "" Then
                ar1(t, 0) = ar(j, 1)
                ar1(t, 1) = ar(j, 2)
                ar1(t, 2) = ar(j, jj)
                t = t + 1
            End If
        Next jj
    Next j
    .[h1].Resize(UBound(ar1) + 1, UBound(ar1, 2) + 1) = ar1
End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan