ich hoffe die Überschrift trifft es einigermaßen, erkläre es aber einfach hier ausführlich. Ich versuche verzweifelt eine Anzahl von Produkten herauszufinden, die in gewissen Untergruppen vorkommen. Ich hoffe ihr könnt mir weiterhelfen
Folgende Ausgangslage beispielhaft dargestellt.
Ich habe z.B. vier Spalten
Spalte A = Level
Spalte B = Stückzahl
Spalte C = Beschreibung
Spalte D = Gesamtstückzahl
Annahme ich will ein Haus bauen
Level Stückzahl Beschreibung Gesamtstückzahl
1 1 Haus
2 1 Erdgeschoss
3 1 Türen
3 3 Wohnbereiche
4 3 Fenster
4 1 Türen
3 1 Schlafbereiche
4 2 Fenster
4 1 Türen
2 1 Obergeschoß
3 2 Schlafbereiche
4 2 Fenster
4 1 Türen
3 2 Badezimmer
4 2 Fenster
4 1 Türen
Nun möchte ich immer in der Spalte D des letzten Knotenpunktes die benötigte Gesamtanzahl berechnen.
Also als Beispiel
- die Gesamtzahl der Türen im Schlafbereich im Erdgeschoß = 1Tür x 1Schlafbereich x 1Erdgeschoß = 1 in Spalte D
- die Gesamtzahl der Fenster in den Badezimmern im Obergeschoss = 2Fenster x 2Badezimmer x 1Obergeschoss = 4 in Spalte D
Es gibt aber nicht immer die gleiche Anzahl an Knotenpunkten, sondern der unterste Punkt kann auch mal im Level 3 aufhören --> Als Beispiel die Eingangstür des EG
Ich hoffe ich habe es soweit verständlich erklärt.
Hier mal mein Ansatz, wo ich aber dann nicht mehr weiterkomme
'letzte Zeile in Spalte A suchen:
Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
' Zeilen nacheinander überprüfen, ob es sich um einen untersten Knotenpunkt handelt
For z = 1 To Zeilenanzahl
If Cells(z, 1) >= Cells(z + 1, 1) Then
' Wenn ich einen untersten Knotenpunkt habe, dann die Einzelstückzahl aus Spalte B in _
_
Variable speichern
a = Cells(z, 2).Value
' herausfinden in welchem Knoten dieser speziellen Artikel endet
Level = Cells(z, 1).Value
' nachdem ich ja die Stückzahl des untersten Levels schon habe will ich jetzt die Stü _
ckzahl des direkt darüber liegenden Knotens ermitteln aber hier komme ich nicht weiter...
Level_1 = Cells(z, 1).End(xlUp).Row
Ich will ihm sagen, er soll ab der Zeile in der er gerade ist nach oben das nächst kleinere Level suchen und mir hier die Reihe nennen, dass ich dann wieder die Stückzahl aus der gefundenen Reihe als Variable b zu speichern, dass ich dann am Ende in Spalte D den Wert a * b * c * ... (je nach Anzahl der Level) ausgeben kann.
Wichtig ist auch, dass er mir eben nur den ersten kleineren Wert berücksichtigt, und dann mit dem nächsten, also Level - 2 weitermacht...
Vielen Dank euch schon mal für eure Unterstützung!!!