[VBA] Vater-Kind Liste zu Baumstruktur

schmidmi

Lt. Commander
Registriert
Feb. 2007
Beiträge
1.823
Ich beschreibe erstmal kurz was ich vor habe. Vielleicht ist mein Ansatz schon nicht richtig.

Ich habe eine Liste mit rund 60000 Einträgen die eine Eltern-Kind-Liste von Materialstücklisten enthalten.

In Spalte B steht immer das Vatermaterial und in Spalte C das(die) passende(n) Kind(er).

In einer weiteren Liste habe ich nun etwa 100 Materialnummern deren Stückliste ich in einer Baumstruktur aufbauen möchte.

Derzeit habe ich es wie folgt gelöst.
Ich durchsuche die Liste mit den 100 Nummern(Liste1) von unten nach oben und wenn ich die erste Materialnummer gefunden habe suche ich diese in der Vater-Kind-Liste(Liste2). Ich merke mir die Treffer und füge dann in Liste1 entsprechend viele Leerzeilen ein und schreibe in die nächste Spalte die gefundenen Materialnummern. Wenn ich SpalteA von Liste1 durchlaufen habe, beginne ich in SpalteB wieder von unten. Das Ganze so oft bis in einer Spalte keine Treffer mehr vorhanden sind. Derzeit sind das etwa 7 Spalten. Nur stört mich die Verarbeitungszeit des Scripts. Derzeit dauert es fast 10 Minuten für die 100 Einträge. In Zukunft werden es auch mehr Einträge werden. Und viele Suchen wären nicht nötig weil fast jedes Material in SpalteB mehrfach vorkommt.

Jetzt die Frage.
Ist das grundsätzlich der richtige Ansatz oder gibt es bessere Lösungen?
 
Wenn ich dein Problem richtig verstanden habe, dann könntest du die 60.000 Einträge in eine Baumstruktur laden und dann nach den passenden Nummern durchsuchen, das würde einmalig eine Zeit lang dauern, anschließend aber wesentlich schneller von Statten gehen.
Kennst du dich mit java/c++ aus?
 
Das geht leider nicht. Ich bekomme die Vater-Kind-Liste einmal pro Woche und baue daraus die Baumstruktur. Dann wird diese mit der alten Liste verglichen. Zu Beginn habe ich nur eine Liste der obersten Ebene. Und das Ganze muss leider in VBA bleiben weil ich sonst jemand anlernen müßte in Programmierung und Datenbanken. Bisher reicht es eine Anweisung zu schreiben wie die Ausgangsliste aussehen soll und den Code möglichst flexibel zu gestalten.
 
Da es hier um Performance geht, kann man da schlecht eine Einschätzung geben, ohne etwas Code gesehen zu haben.

Ansonsten denke ich, einmal die Woche 10 Minuten warten ist noch erträglich und beherrschbar.
 
Zurück
Oben