seit gestern Abend beschäftigt mich ein Thema, welches an sich banal klingt. Ich habe es in der ursprünglichen Form aber leider nicht lösen können.
Es geht um SummeWenn, die mit 4 Kriterien arbeiten soll. An sich kein Problem. Diese Kriterien kommen aus einer DropDownListe und können den Wert ALL annehmen. Wenn das der Fall ist, dann soll die Lösung (da ich noch nicht weiß, ob Formel oder VBA das Mittel der Wahl ist) dieses Kriterium überspringen.
Das 1. Kriterium ist immer fest. Es ist die Prüfung, ob eine Zeile Consolidation Level 2 ist.
Problem: In der Tabelle sind Gruppierungen aktiviert, die unangetastet bleiben sollen. Die Verwendung des Autofilters und Teilsumme führte zum Verlust der Gruppierungen. Überdies sollen die Summen auch korrekt gebildet werden, wenn der AutoFilter nicht aktiv/ vorhanden ist.
Meine Versuche: per Formel wurde es sehr, sehr lang und unübersichtlich. Ich habe kein Jokerzeichen ausfindig machen können, welches man beim Kriterium ALL der Formel geben könnte.
VBA: Habe ich einen Ansatz, der die möglichen Ranges durchloopt, aber bin nicht weit gekommen. Mir fehlt auch der theoretische Ansatz, wie eine VBA Lösung konstruiert werden muß. Die Ausführung mit Schleifen, etc. sollte kein Problem mehr sein. Aber mir fällt der Bauplan nicht ein.
Ich wäre für eine Lösung per Formel und VBA dankbar. Da ich bisher in dieser Konfiguration nicht weiter gekommen bin, interessiert es mich zu sehen, wie die Cracks das lösen würden.
Meine Überlegungen haben aber dennoch zu einer praktikablen Lösung geführt: Und zwar lasse ich pro Zeile auslesen, ob diese hidden ist oder nicht. Wenn ja, wird die Zeilennummer in eine Collection geschrieben. Dann wird der AutoFilter aktiviert, dessen Felder werden entsprechend der Kriterien durchgeloopt und hinten im Value Bereich werden dann die visiblecells addiert. Anschließend werden wieder alle Daten eingeblendet und anhand der Collection wird die Gruppierung wiederhergestellt.
Diese Lösung hat so ein bißchen von hinten durch die Brust ins Auge Charakter, aber sie läuft erstaunlich gut. Hoffe, sie stößt vielleicht auf Interesse.
Aber, um in Sachen VBA mehr zu lernen, interessiert mich immer noch die Lösung des Durchschleifens der einzelnen Ranges (+ Überspringen von "ALL"). Genauso interessant ist eine Formellösung die mit möglichst wenig Verschachtelungen auskommt.
Vielleicht interessiert den einen oder anderen das Problem und es werden am Ende alle drei Lösungswege ergründet sein und der Neugierde genüge getan.
https://www.herber.de/bbs/user/57567.xls
Vielen Dank und Grüße, Andreas Hanisch