Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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

Hintergrundfarbe zählen

Hintergrundfarbe zählen
14.01.2021 10:22:03
Franco
Hallo zusammen
ich habe hier ein Problem und zwar möchte ich die Hintergrundfarben zählen.
Habe einen tollen VBC Code gefunden das leider nur zum Teil funktionier. das Problem ist das er die Zellen nicht automatisch zählt, er zählt erst dann wenn ich die Formel an klicke.
Was ist dem Code falsch?
https://www.herber.de/bbs/user/142998.xlsm
Schöne Grüsse

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hintergrundfarbe zählen
14.01.2021 10:41:23
worti
Hi Franco,
an dem Code ist nichts falsch, aber bei Ändern der Hintergrundfarbe löst Excel keine Neuberechnung aus. Du könntest über das SelectionChange Ereignis eine Neuberechnung auslösen, aber das musst du dann für jedes Blatt machen, in dem du die Funktion benutzt.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub

Oder F9 drücken für Neuberechnung. Alles nicht schön, aber vielleicht hat ja jemand anderes eine viel bessere Lösung.
Gruß Worti
AW: Hintergrundfarbe zählen
14.01.2021 11:08:41
Franco
Hallo Worti
habe hier im Archiv was gefunden das sehr gut funktioniert..
Dazu in einem allgemeinen Modul der Datei folgende Benutzerdefierte Funktion einrichten:
Public Function Farbenzaehlen(ZellBereich As Range, lngColorIndex As Long) As Long
'Funktion zählt Zellen im Zellbereich mit dem angegebenen Colorindex
Dim Zelle As Range
For Each Zelle In ZellBereich
If Zelle.Interior.ColorIndex = lngColorIndex Then
Farbenzaehlen = Farbenzaehlen + 1
End If
Next Zelle
End Function
Unter dem Tabellenblatt folgenden Code für das Worksheet
'Code im Tabellen-Modul
Option Explicit
Private lastCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("B1:B500")) Is Nothing Then
If Not lastCell Is Nothing Then
Cells(1, 1).Calculate
Set lastCell = Nothing
End If
Else
Cells(1, 1).Calculate
Set lastCell = Target.Range("A1")
End If
End Sub
In der Tabelle in der Zelle in der gezählt werden soll folgende Formel:
=Farbenzaehlen($B$1:$B$500;1)+JETZT()*0
Dabei sind der Zellbereich und der ColorIndex der Zellfüllfarbe entsprechend anzupasssen.
Gruss Franco
Anzeige
AW: Nichts falsch, es ist halt eine Funktion...
14.01.2021 10:43:22
JoWE
AW: Nichts falsch, es ist halt eine Funktion...
14.01.2021 10:46:10
Franco
Hallo JoWE
o.k und was muss ich ändern das es von selbst zählt?
Gruss
AW: Nichts falsch, es ist halt eine Funktion...
14.01.2021 10:52:15
Daniel
da kannst du nichts dran ändern.
das Ändern einer Formatierung löst keine Neuberechnung der Formeln aus.
da kannst du nix machen.
du hast deine Funktion volatil gemacht.
dann bekommst du eine Neuberechnung auch dann, wenn du einfach nur einen beliebigen Zellwert änderst oder wie schon beschrieben F9 drückst.
oder änderst die Hintergrundfarbe nicht über das Menü, sondern du erstellst dir im Blatt ein paar Zellen mit den möglichen Hintergrundfarben, welche du dann mit dem Pinselsymbol (Kopieren + einfügen Formate) in die Zielzelle überträgst. Die Copy-Paste-Aktion löst auch eine sofortige Neuberechnung aus.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige