Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1880to1884
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Werte summieren, wenn

VBA Werte summieren, wenn
27.04.2022 09:18:33
Joschi
Hallo Forum.
In einer Tabelle mit derzeit rund 30.000 Zeilen stehen in einer bestimmten Spalte ganzzahlige Werte. Nun soll die Summe dieser Werte ermittelt werden, sofern die Hintergrundfarbe der jeweiligen Zelle einen bestimmten Wert hat
Eine zusätzliche Zeile (für eine mögliche Formel) in der Tabelle scheidet aus, weil dies sonst an anderen Stellen zu Problemen führen würde.
Gibt es eine bessere Möglichkeit, als die Tabelle in einer Loop abzuarbeiten?
Gruß Joschi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Werte summieren, wenn
27.04.2022 09:24:05
Oberschlumpf
Hi,
wozu brauchst du denn eine zusätzliche Zeile für Formel? Wäre da ne Spalte nich die bessere Wahl (auch wenn die auch die nich willst)?
Anstelle direkt die Tabelle mit - wie du schreibst - mit Loop abzuarbeiten, würde ich alle Werte erst mal in einer Arrayvariablen sammeln und den Inhalt dann in der Tabelle platzieren.
ne Bsp-Datei mit Bsp-Daten und natürlich auch die Bedingungen bei Namen genannt wäre schön.
Ciao
Thorsten
AW: VBA Werte summieren, wenn
27.04.2022 09:39:50
Joschi
Hallo Thorsten.
Danke für Deine Antwort.
Ich möchte vermeiden, an der Tabelle irgend welche Änderungen vorzunehmen, sei es das Einfügen einer neuen Zeile oder - wie Du vorgeschlagen hast - einer zusätzlichen Spalte. Falls die Ausführung meines Codes - warum auch immer - scheitert, dann sind in der Tabelle zusätzliche Elemente enthalten, die bei einer Verarbeitung durch bestehende Routinen zu Problemen führen könnte. Die Routinen würden dann auf unbekannte Daten stoßen. Gleiches gilt - vorsorglich - auch für die Idee, dafür ein zusätzliches Tabellenblatt zu benutzen.
Dein Vorschlag, die (gefilterte) Tabelle in eine Arrayvariable zu kopieren, macht doch nur Sinn, wenn ich damit eine neue Tabelle fülle. Oder sehe ich das falsch?
Den unbedingten Bedarf für eine Mustertabelle sehe ich hier nicht gegeben. Ich traue mir zu, einen verständlichen Code derart umzubauen, dass er die richtige Spalte nach der richtigen Farbe durchsucht, um dann die Zählung zu machen.
Gruß Joschi
Anzeige
AW: VBA Werte summieren, wenn
27.04.2022 09:44:30
Oberschlumpf
Hi
aber ich sehe mich nicht in der Lage, ohne Bsp-Datei einen Code zu entwickeln - ich brauch ja was zum Testen.
Weiter viel Erfolg für dich
Meine Idee mit dem Array bezog sich unterm Strich natürlich auf die von dir gewünschten Summenwerte - die ja - in einer Tabelle? - auch irgdwo platziert werden müssten, oder was genau würdest du mit den Summenwerten machen?
Ciao
Thorsten
AW: VBA Werte summieren, wenn
27.04.2022 09:29:53
GerdL
Hallo Joschi,
ich unterstelle mal, dass die Farbe mit bedingter Formatierung in die Zellen kommt.
Welche Vorgaben/Formeln liegen der Färbung zugrunde?
Gruß Gerd
AW: VBA Werte summieren, wenn
27.04.2022 09:48:42
Joschi
Hallo Gerd.
Auch Dir herzlichen Dank für Deine Antwort.
Die Einfärbung geschieht mit VBA und beruht auf der Tatsache, dass 2 Argumente in der Zeile zutreffen. Da die bestehenden Verarbeitungsroutinen sich nicht um die Hintergrundfarbe kümmern, wurde diese Art der Kennzeichnung gewählt.
Nachdem die entsprechenden Zeilen farblich markiert sind, hat der Anwender noch die Möglichkeit, durch Doppelklick die Kennzeichnung zu löschen bzw. zu setzen. Erst durch Einsatz einer weiteren Routine werden dann die gekennzeichneten Zeilen ausgewertet.
Ich hoffe, ich habe das verständlich beschrieben.
Gruß Joschi
Anzeige
AW: VBA Werte summieren, wenn
27.04.2022 10:04:24
GerdL
Hallo Joschi,
ja, per Schleife die Interior.Color oder den Interior.ColorIndex der Zellen abfragen (evtl. mit der Find-Methode), es sei denn du hast die Möglichkeit nach der Farbe zu filtern u. das Teilergebnis / Summe der Werte der gefilterten Zellen zu bilden.
Gruß Gerd
AW: VBA Werte summieren, wenn
27.04.2022 09:56:51
ChrisL
Hi Joschi
Eine Idee wäre vielleicht mit Autofilter nach Farben zu filtern und danach TEILERGEBNIS() zu verwendet. Ist vielleicht etwas schneller wie Loop.
Im Gegensatz zu Gerd gehe ich davon aus, dass die Zellen manuell eingefärbt wurden, was bei 30k Zeilen m.E. zwar unverständlich ist, aber man muss ja nicht alles verstehen. N.b. alleine schon diese Unbekannte zeigt doch schon, dass eine Beispieldatei hilfreich wäre, denn sonst muss man als Antworter ständig irgendwelche Annahmen treffen und wenn es dumm läuft, arbeitet/antwortet man für den Papierkorb.
cu
Chris
Anzeige
AW: VBA Werte summieren, wenn
27.04.2022 10:00:18
Daniel
Hi
du könntest mit dem Autofilter nach dieser Farbe filtern (der Filter kann das) und dann die Summe mit Worksheetfunction.Subtotal(9;Columns(x)) bilden.
Subtotal entspricht Teilergebnis und ignoriert ausgeblendete Zeilen.
ob das jetzt besser ist als eine Schleife, musst du entscheiden.
Gruß Daniel
AW: VBA Werte summieren, wenn
27.04.2022 12:24:04
Joschi
Hallo Daniel.
Danke für Deinen Hinweis auf "Worksheetfunction.Subtotal(9;Columns(x))".
Ich habe nun kurzfristig mit einem Autofilter nur die gewünschten Zeilen angezeigt, und dann mit Worksheetfunction.Subtotal(9;Columns(x)) den gewünschten Wert ermittelt. Für mich ist das eine brauchbare Lösung, weil der erforderliche Autofilter nur sehr kurz gesetzt ist. Ich werde auch dafür sorgen, dass ein möglicher Autofilter für das entsprechende Tabellenblatt grundsätzlich immer aufgehoben wird, damit immer alle Zeilen sichtbar sind.
Was mich an der Formel stört: ich habe keine Variable mit einem sprechenden Namen für den in diesem Zusammenhang genutzten Wert "9" gefunden. Deshalb muss ich im Code selbst dokumentieren, was dieser Wert "9" bedeutet.
Mein Problem wurde wieder einmal dank der Unterstützung von Forums-Mitgliedern sehr schnell gelöst. Danke!
Gruß Joschi
Anzeige
AW: Nimm sbCountMyColor as Basis
27.04.2022 19:02:20
Sulprobil
Hallo,
ich schlage vor, Du nimmst sbCountMyColor unter
http://www.sulprobil.com/sbsummyformat_en/
als Basis und änderst die beiden Funktionen zu einer nach Deiner Anforderung ab.
Irgendwo musst Du ja die Ergebniszelle haben, die Deine gewünschte Summe anzeigen soll.
Dann ist es sicherlich hilfreich, wenn diese Zelle genau die Farbe als Hintergrundfarbe hat, über die summiert werden soll.
Viele Grüße,
Bernd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige