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

Registerfarbe anhand Zelleneintrag ändern

Forumthread: Registerfarbe anhand Zelleneintrag ändern

Registerfarbe anhand Zelleneintrag ändern
04.08.2025 16:40:35
Pellets25
Hallo zusammen.

Ich habe im Forum bereits einen Code gefunden, der zu meinen Bedürfnisssen passt. Allerdings habe ich es trotz intensiver Suche nicht geschafft, das Script auf die komplette Spalte Y auszudehnen.

Ziel ist es, die Registerfarbe zu ändern, wenn in einer - oder mehreren Zellen - in Spalte Y ein bestimmtes Zeichen/Wert steht.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("Y9")) Is Nothing Then
If Me.Range("Y9").Value = "*" Then
Me. Tab.Color = RGB(255, 0, 0) 'Rot
Else
Me. Tab.Color = RGB(0, 255, 0) 'Grün
End If
End If
End Sub

Wäre für Unterstützung sehr dankbar.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Registerfarbe anhand Zelleneintrag ändern
04.08.2025 16:54:10
daniel
Hi

nimm mal diesen Code:
Private Sub Worksheet_Calculate()

If WorksheetFunction.CountIf(Me.Range("Y:Y"), "~*") Then
Me.Tab.Color = vbRed
Else
Me.Tab.Color = vbGreen
End If
End Sub

Der ist eigentlich dafür gedacht, wenn die Werte in Spalte Y per Formel erzeugt werden.
sollten die Werte von Hand eingegeben werden, dann müsstest du auf dem Tabellenblatt noch eine Formel hinzufügen, die auf die Spalte Y referenziert (=Anzahl(Y:Y) reicht) oder du schreibst den Code ins Change-Event.

Gruß Daniel
Anzeige
AW: Registerfarbe anhand Zelleneintrag ändern
04.08.2025 17:43:00
Pellets25
Mir war nicht bewusst, dass die Formatierung das Problem war.

Deine Lösung ist Top, danke!
AW: Registerfarbe anhand Zelleneintrag ändern
04.08.2025 17:09:25
Pellets25
Vielen Dank!

Ich hab das gerade mal versucht, allerdings funktioniert es nicht.

Der Vollständigkeithalber sei gesagt, dass die Spalte eine "Bedingte Formatierung" enthält: Wenn Zellwert beginnt mit "*", dann Füllfarbe. Denke aber nicht, dass es hieran liegen könnte.

Ursprünglich war das Ziel, die Registerfarbe nicht anhand eines Zeichens zu ändern, sondern, wenn die Zelle(n) mit einer bestimmten Farbe gefüllt werden. Das war aber noch komplizierter und wurde verworfen.
Anzeige
AW: Registerfarbe anhand Zelleneintrag ändern
04.08.2025 17:24:19
daniel
Hi
das Problem liegt daran, dass du nicht korrekt genug beschreibst.
in der Eingangsfrage hast du noch gefragt: "Wenn in einer Zelle ein bestimmter Wert steht" und dann auch die Prüfung auf nur genau diesen Wert gemacht: IF ... ="*" Then

jetzt fragst du aber nach "beginnt mit", dh in Zelle könnte auch "*abcd" oder "*xyz" stehen und nicht nur "*"
das musst du schon genauer beschreiben, egal ob du selber programmierst oder hier fragen stellst.

wenn die Bedingung lautet: Beginnt mit "*", dann wäre die Zeile:
If WorksheetFunction.CountIf(Me.Range("Y:Y"), "~**") Then


wenn du da flexibel sein willst oder noch experimentierst, mach es so:

zähle auf dem Tabellenblatt in einer freien Zelle (z.B. A1) wie oft es vorkommt, dass in Y ein Wert mit "*" beginnt.
dazu die Formel in A1:
=ZählenWenns(Y:Y;"~**")

das Makro kannst du dann so vereinfachen:
Private Sub Worksheet_Calculate()

If Range("A1").Value = 0 Then
Me.Tab.Color = vbGreen
Else
Me.Tab.Color = vbRed
End If
End Sub

dh das Blatt wird grün, wenn die Zählformel 0 ausgibt und rot bei einer anderen Zahl.
Wenn sich jetzt deine Bedingungen ändern, passt du einfach die Formel auf dem Tabellenblatt an und das Makro bleibt gleich

Gruß Daniel


Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18