Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Summieren von Zellen mit bedingter Formatierung

Summieren von Zellen mit bedingter Formatierung
26.04.2024 10:08:11
Slisher
Liebe Community,

ich möchte gerne Zellen, die mit bedingter Formatierung optisch hervorgehoben sind summieren.

Nachdem ich alles mögliche erfolglos ausprobiert habe und ich inzwischen gelernt habe, dass Excel diese Formatierung nicht so anzeigt, dass es mit einfachen Mitteln "gelesen" werden kann, bin ich bei VBA gelandet.
Nun habe ich Null-Ahnung von VBA.
Die KI gefragt hat mir diesen Code generiert:

vb
Function SumConditionColorCells(SumRange As Range, ColorRange As Range) As Double
Dim SumColorValue As Integer
Dim TotalSum As Double
Dim cell As Range

SumColorValue = ColorRange.Interior.ColorIndex

For Each cell In SumRange
If cell.Interior.ColorIndex = SumColorValue Then
If IsNumeric(cell.Value) Then
TotalSum = TotalSum + cell.Value
End If
End If
Next cell

MsgBox ActiveCell.DisplayFormat.Interior.Color

SumConditionColorCells = TotalSum
End Function

Diesen Code habe ich in VBA eingesetzt, aber bei der Anwendung kommt jetzt die folgende Fehlermeldung:
"Fehler beim Kompilieren - Außerhalb einer Prozedur ungültig".

Hat jemand eine Idee?
lg Slisher


PS: Leider kann ich die Datei nicht hochladen - egal wo ich die Datei ablege, läßt mich das System die Datei nicht hochladen.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 10:12:24
SF
Hola,
wenn du doch Bedingungen hast, kannst du diese doch auch für die Summierung verwenden. Warum der Umweg über VBA?
Gruß,
steve1da
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 13:53:40
Onur
Was soll das Wort "vb" im Code ?
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 15:12:26
daniel
Hi
um die "normale" Farbe (ohne Bedingte Formatierung) einer Zelle abzufragen nimmst du
 cell.Interior.ColorIndex

um die tatsächliche Farbe einer Zelle abzufragen (mit Bedingter Formatierung) nimmst du
cell.DisplayFormat.Interior.ColorIndex


problem an der Sache ist, dass Microsoft verboten hat, dieses DisplayFormat innerhalb von Zellformeln zu verwenden.
dh eine Funktion mit dieser Funktion läuft nur innerhalb eines Makros, aber nicht wenn du du die Funktion in einer Formel in einer Zelle verwendest
Gruß Daniel
Anzeige
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 15:58:41
Slisher
Hallo Daniel,

Dein Hinweis hat mich davor bewahrt durchzudrehen :-) mit Hilfe der KI habe ich ein Makro geschrieben und ...

... es geht.

Vielen Dank! Danke an Dich und alle die mir geholfen haben.

Tolle Community.

lg
Slisher (Benny)
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 10:32:11
Slisher
Hallo Steve,

Danke für Deine Antwort.

Das habe ich schon probiert - mit einer Hilfsspalte. Da die Werte aber variabel sind läßt sich keine eindeutige Formel ableiten.

Habe bei Anderen das schon gesehen, da waren aber immer eindeutige Werte zu ermitteln.

Daher habe ich die Hervorhebung mit der bedingten Formatierung gewählt und diese lässt ich aber nicht "auslesen".

Hm :-(
Anzeige
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 10:39:10
SF
Dann zeig doch mal was du für eine bedingte Formatierung hast. Dann könnte man evtl etwas basteln.
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 10:41:49
Sigi.21
Hallo Slisher,

mit deiner Funktion kannst du nur die "normale" Hintergrundfarbe summieren. Nicht aber die durch bedingte Formatierung erzeugte Farbe!
In deiner Fkt. verwendest du "cell" als Variable. "Cell" ist ein geschütztes VBA-Wort!
Der ColorIndex bei Farbe ist veraltet. Das galt für Excel mit 56 Farben. Lange ist es her. Nimm heutzutage nur "Color". (f. ca, 16 Mio. Farben). Dann muss die Variable natürlich ein long sein.

Function FarbSumme(SummeBereich As Range, ColorRange As Range) As Double
Dim FarbWert As Long
Dim Summe As Double
Dim Zelle As Range
Application.Volatile
FarbWert = ColorRange.Interior.Color
For Each Zelle In SummeBereich
If Zelle.Interior.Color = FarbWert Then
If IsNumeric(Zelle.Value) Then
Summe = Summe + Zelle.Value
End If
End If
Next Zelle
FarbSumme = Summe
End Function

Gruß Sigi
Anzeige
Nur am Rande...
26.04.2024 11:15:43
{Boris}
Hi,

In deiner Fkt. verwendest du "cell" als Variable. "Cell" ist ein geschütztes VBA-Wort!

Stimmt nicht. Cell ist OK, Cells ist das Schlüsselwort. ;-)

VG, Boris
AW: Summieren von Zellen mit bedingter Formatierung
26.04.2024 12:23:22
Slisher
Hall Sigi,

vielen Dank für den Code.

Leider kommt noch immer die gleiche Meldung.

Ich befürchte ich habe so wenig Ahnung von der Materie, dass ich wahrscheinlich einen Flüchtigkeitsfehler mache.

Es ist so schade, dass ich die Excel-Datei nicht hochladen kann :-(

Nochmals vielen Dank

lg Slisher
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige