keine Ahnung was ich zuletzt kaputt gemacht habe, aber meine zuvor funktionierende for schleife will nicht mehr das tun was ich von ihr will:
Spalte = 2
'Kategorien pro Monat
ParentKeys = Parent.Keys
For i = UBound(ParentKeys) To LBound(ParentKeys) Step -1
'MsgBox ParentKeys(i)
ChildKeys = Parent(ParentKeys(i)).Keys
For j = LBound(ChildKeys) To UBound(ChildKeys) Step 1
If ChildKeys(j) = "Kat A" Then
sht.Cells(2, Spalte).Value = ParentKeys(i) & "/" & ChildKeys(j) & " - " & Child( _
ChildKeys(j))
'sht.Cells(2, Spalte).Value = Child(ChildKeys(j))
End If
If ChildKeys(j) = "Kat B" Then
sht.Cells(3, Spalte).Value = ParentKeys(i) & "/" & ChildKeys(j) & " - " & Child( _
ChildKeys(j))
'sht.Cells(3, Spalte).Value = Child(ChildKeys(j))
End If
Next j
Spalte = Spalte + 1
Next i
Wie am obigen Beispiel zu sehen baue ich ein Dictionary auf welches als Key einen String (Monatsrepresentation) enthält und als Value ein weiteres Dictionary. Das zweite Dictionary hat als Key eine Kategorie und als Value einen anderen String.Was ich jetzt versuche ist mit diesem Konstrukt eine Matrix zu befüllen, welche auf der X-Achse die Kategorien hat und auf der Y-Achse die Monate ausweist.
Grundsätzlich befülle ich die Matrix auch abhängig von den vorhandenen Kategorien. Soll heißen wenn im Monat 1 beide Kategorien vorhanden sind werden auch beide Zellen befüllt, gibts in Monat 2 nur Kat A wird auch nur eine Zelle befüllt usw...
Allerdings habe ich es wohl kürzlich geschafft nicht mehr die Values vom "richtigen" Child auszuweisen, sondern immer nur vom ersten Parent.
Die Idee ist ja, dass ich durch das erste Dictionary von hinten nach vorne durchlaufe und pro Eintrag wieder durch das zweite Dictionary laufe. Je nach Inhalt vom 2. Dictionary soll dann die Matrix mit den Values befüllt werden.
Aber aus irgendeinem Grund greife ich nicht den Value vom aktuellen Durchlauf des (2.) Dictionary, sondern immer den vom ersten Durchlauf. Dabei sehe ich aber, dass j immer korrekt hochgezählt wird und auch die Information aus ParentKeys(i) zeigt mir, dass ich beim Eltern-Element richtig durchlaufe.
Mein Eindruck: Aus irgendeinem Grund greife ich nicht auf die richtigen Kinder-Elemente sondern verbleibe irgendwie auf dem ersten Kinds-Element?!
Aktuell sieht eine beispielhafte Befüllung so aus:
M3 M2 M1
Kat A M3/Kat A - 1 M2/Kat A - 1 M1/Kat A - 1
Kat B M2/Kat B -
Dabei ist der Value von M2/Kat A nicht 1, sondern z.B. 2, und für M1 z.B. 4.Was noch auffällt: Das was im ersten Durchlauf befüllt wurde wird auch in allen Folgemonaten befüllt. Das was im ersten Durchlauf nicht enthalten war wird zwar noch richtig in den Folgemonaten ausgewiesen, aber eben ohne Value.
Stehe total auf dem Schlauch zumal das alles schon mal funktioniert hat :(
Danke für eure Hilfe vorab!!
P.S.: Meine Dictionaries heißen immer noch Parent & Child - sorry. "Aufräumen" werde ich am Ende...