VBA Daten transponieren
23.10.2013 16:40:06
Marcus
ich bräuchte Unterstützung in einem VBA Script. Ich habe folgende Excel Tabellen Struktur.
Spalte 1 Spalte2 Spalte3 Spalte4
Customer No 123456
REF CD1 no 12345
REF CD2 yes abcde
REF CD3 yes 234ab
Customer No 123457
etc.
Aus den o.g. Daten hätte ich gerne folgenden Output:
Spalte1 Spalte2
123456 CD1(12345)-no&CD2(abcde)-yes&CD3(234ab)-yes
123457 ....
Die Anzahl der REF Felder kann varieren.
Ich habe schon folgende Lösung bekommen, aber leider sind die REF Felder teilweise sehr lang, so dass ich den Fehler 13 erhalte.
Sub MitDictionary()
Dim arr
Dim dic
Dim ze As Long
Dim txt As String
Set dic = CreateObject("scripting.dictionary")
arr = Sheets(1).Cells(1, 1).CurrentRegion.Resize(, 2).Value
For ze = 1 To UBound(arr, 1)
If arr(ze, 1) Like "CUST" Then
txt = CStr(arr(ze, 2))
ElseIf arr(ze, 1) Like "REF" Then
If dic.exists(txt) Then
dic(txt) = dic(txt) & "&" & arr(ze, 2)
Else
dic(txt) = arr(ze, 2)
End If
End If
Next
With Sheets(2).Cells(1, 1).Resize(dic.Count)
.Offset(0, 0).Value = WorksheetFunction.Transpose(dic.keys)
.Offset(0, 1).Value = WorksheetFunction.Transpose(dic.items)
End With
End Sub
Hat jemand vielleicht eine andere Idee ?Gruß
Marcus