Hey Joe,
ich würde das in VBA so abbilden wie Du es in Deinem Post beschrieben hast.
Am einfachsten ist: Nutze den Makrorekorder und zeichne die einzelnen Handlungsschritte auf. Dort, wo Du programmieren mußt, drückst Du x oder y oder z. Bearbeite den aufgezeichneten Code.
Dein Makro sollte folgendermaßen vorgehen:
- Es geht in die Datentabelle. Dort
- analysiert es immer nur eine Zeile
- liest die erste Zelle und merkt sich den Namen
- liest die zweite Zelle und merkt sich die Anzahl
- liest die dritte Zelle und merkt sich die Farbe
- Dann geht es in die Auswertetabelle, die Du bereits manuell vorher auf einem weiteren Sheet angelegt hast. Das Makro
- geht in die Zeile mit dem Namen (wenn es ihn nicht findet, schreibt es ihn dazu)
- in der Zelle daneben liest es den Inhalt aus, addiert die gemerkte Anzahl dazu und schreibt das Resultat in die Zelle
- dann geht es eine Zelle weiter nach rechts.
Stimmt die gemerkte Farbe mit der Spaltenüberschrift überein, liest es den Inhalt aus, addiert die gemerkte Anzahl und schreibt das Resultat zurück.
Stimmt die gemerkte Farbe mit der Spaltenüberschrift nicht überein, geht das Makro in die nächste Zelle.
usw. bis auch die Farbe verarbeitet ist.
Schritt 1 und 2 wären die innere Schleife. Sie wird so lange wiederholt, bis die Datentabelle abgearbeitet wird. Das wäre in einer äußeren Schleife zu programmieren. Workaround, wenn Du die sparen willst: programmiere nur die innere Schleife, stelle den Cursor in die erste auszuwertende Zelle der Datentabelle und rufe das Makro so lange auf, bis die Tabelle abgearbeitet ist. (Ob das sinnvoll ist, hängt von Deiner Datentabelle und Deinen Auswertungen ab.)
HTH.
M.