ich hatte vor einigen Tagen eine Anfrage ins Forum gestellt, auf die Chris mir eine auf den ersten Blick sehr hilfreiche Lösung bereitstellen konnte:
ich hatte gestern ein Thema hochgeladen, was sich bei näherer Betrachtung als unnötig komplex erwiesen hat, deshalb starte ich meine Anfrage neu und umformuliert. Die Arbeitsdatei befindet sich hier:
https://www.herber.de/bbs/user/140037.xlsx
Ich möchte die Daten aus dem Systemexport Tab. Systemexport so transformieren, dass sie mit Pivot analysiert werden können.
Dazu ist es erforderlich, die im Export leider übereinander dargestellten Positionen in einzelnen Spalten zu positionieren.
Im Falle der Rest-Informationen (Tab. Zielformatierung) kann ich das manuell über Text in Spalten lösen, da die Inhalte durch Leerzeichen getrennt sind.
Keinen Ansatz habe ich für die übergreifenden Produkt- und Lieferantenbezeichnungen, die gem. Zielformatierung ebenfalls in separate Spalten übertragen werden sollen.
Hierbei ist zu berücksichtigen, dass die Produktbezeichnung IMMER über die Lieferantenbezeichnung gestellt ist, wenn diese in Spalte A übereinander der Rest-Bezeichnung überstellt sind, was für eine Formellösung ggf. hilfreich ist
Er hat dafür ein Makro geschrieben, das die Beispieldatei
https://www.herber.de/bbs/user/140037.xlsx
zunächst einwandfrei ausgelesen hat:
Sub t()
Dim i As Long, lZ As Long, strProdukt As String, strLieferant As String
Dim WS1 As Worksheet: Set WS1 = Worksheets("Systemexport")
Dim WS2 As Worksheet: Set WS2 = Worksheets("Zielformatierung")
WS2.Rows("3:" & Rows.Count).Delete
For i = 3 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
If Left(WS1.Cells(i, 1), 1) = " " Then
lZ = WS2.Cells(Rows.Count, 1).End(xlUp).Row + 1
WS2.Cells(lZ, 1) = strProdukt
WS2.Cells(lZ, 2) = strLieferant
WS2.Cells(lZ, 3) = Trim(WS1.Cells(i, 1))
Else
If WS1.Cells(i, 1) Like "Lieferant*" Then
strLieferant = WS1.Cells(i, 1)
Else
strProdukt = WS1.Cells(i, 1)
End If
End If
Next i
End Sub
Leider ist mir erst später aufgefallen, dass das Makro von einem immer mit Lieferant beginnenden Lieferantennamen ausgeht. Das hatte ich möglicherweise irreführend formuliert.Die in der Beispieldatei hinterlegten Platzhalter entsprechen nicht den tatsächlichen Lieferantennamen.
Diese wollte ich hier lediglich nicht veröffentlich. Die tatsächlichen Namen sind völlig uneinheitlich.
Gibt es unter dieser Voraussetzung überhaupt noch eine Möglichkeit, dass Makro zu modifizieren?
Viele Grüße
Nils