AW: Zeilen Spalten transformieren
28.01.2021 14:30:33
Matthias
Moin!
Hier mal meine Variante. Im VBE (Alt + F11 drücken) bei der entsprechenden Tabelle eintragen und ausführen lassen. Das Ergebnis wird in einem neuen Blatt angezeigt (das Blatt wird im Code erstellt). Bin davon ausgegangen, dass die Daten in Zelle A1 beginnen. Den Code bitte erst an einer Testdatei probieren, nicht das irgendwas gelöscht wird (sollte eigentlich nicht passieren).
Sub transformieren()
Dim daten, ergebnis
Dim neublatt
Dim zeile As Long, spalte As Long
Dim anzahl As Long
daten = Range("A1").CurrentRegion
ReDim ergebnis(1 To (UBound(daten, 1) * UBound(daten, 2)), 1 To 3)
anzahl = 1
ergebnis(anzahl, 1) = "ID"
ergebnis(anzahl, 2) = "Art"
ergebnis(anzahl, 3) = "Zahl"
For zeile = 2 To UBound(daten, 1)
For spalte = 2 To UBound(daten, 2)
If daten(zeile, spalte) "" Then
anzahl = anzahl + 1
ergebnis(anzahl, 1) = daten(zeile, 1)
ergebnis(anzahl, 2) = daten(1, spalte)
ergebnis(anzahl, 3) = daten(zeile, spalte)
End If
Next
Next
Set neublatt = Worksheets.Add
'anpassen
neublatt.Cells(1, 1).Resize(anzahl, 3) = ergebnis
End Sub
VG