Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1424to1428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

"Matrix auflösen"

"Matrix auflösen"
19.05.2015 10:37:23
Bastian
Hallo zusammen,
ich bin ein durchschnittlicher Excel Anwender ohne VBA Kenntnisse. Ich habe Daten aus SAP in folgendem Format exportiert:
Verbrauchsmenge
Artikel M1 M2 M3
1 50 60 50
2 10 12 60
3 ...
Für ca. 35.000 Artikel jeweils eine Spalte mit monatlichen Mengen. Diese benötige ich jedoch in einem Format, dass ich für jeden Monatswert eine eigene Spalte habe. Sollte also folgendermaßen aussehen.
Artikel Monat Menge
1 M1 50
1 M2 60
1 M3 50
2 M1 10
2 M2 12
2 M3 60
.
.
.
Komme ich irgendwie relativ einfach dort hin?
Vielen Dank für Eure Unterstützung!
Bastian

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Matrix auflösen"
19.05.2015 11:20:52
ede
Hallo bastian,
anbei mal ein Beispielcode um es per Schleife umzusetzen.

Sub bastian()
zeile = 2
For Z = 2 To ThisWorkbook.Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row ' für jefe  _
zeile aus Tabelle1
For s = 2 To 4 ' für die Spalten 2 bis 4 aus Tabelle1
Sheets("Tabelle2").Cells(zeile, 1) = Sheets("Tabelle1").Cells(Z, 1)   'Artikel
Sheets("Tabelle2").Cells(zeile, 2) = Sheets("Tabelle1").Cells(1, s)   'Monat
Sheets("Tabelle2").Cells(zeile, 3) = Sheets("Tabelle1").Cells(Z, s)   'wert
zeile = zeile + 1
Next s
Next
End Sub

gruss
ede

Anzeige
AW: "Matrix auflösen"
19.05.2015 11:51:12
Rudi
Hallo,
in ein Modul und aus der SAP-Tabelle starten.
Sub Liste()
Dim arrTmp, arrDaten(), i As Long, j As Long, n As Long
arrTmp = Cells(1, 1).CurrentRegion
ReDim arrDaten(1 To (UBound(arrTmp) - 1) * UBound(arrTmp, 2) + 1, 1 To 3)
n = 1
arrDaten(n, 1) = "Artikel"
arrDaten(n, 2) = "Monat"
arrDaten(n, 3) = "Menge"
For i = 2 To UBound(arrTmp)
For j = 2 To UBound(arrTmp, 2)
n = n + 1
arrDaten(n, 1) = arrTmp(i, 1)
arrDaten(n, 2) = arrTmp(1, j)
arrDaten(n, 3) = arrTmp(i, j)
Next
Next
With Worksheets.Add
.Cells(1, 1).Resize(UBound(arrDaten), UBound(arrDaten, 2)) = arrDaten
End With
End Sub

Gruß
Rudi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige