Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro:Zellen färben,wenn andere Zelle"x"

Makro:Zellen färben,wenn andere Zelle"x"
24.08.2020 13:15:52
Thomas
Hallo in die Runde,
ich komme leider nach sehr langer Suche nicht weiter. Daher möchte ich hier folgendes erfragen, bzw. um die Erstellung eines Skripts bitten:
Ich möchte erreichen, dass ein Zellbereich z.B. A2 bis A10 gelb eingefärbt wird, wenn in Zelle A1 ein bestimmter Wert steht. Über eine bedingte Formatierung möchte ich dies nicht lösen, da ich dies auf viele Bereich der Tabelle anwenden möchte und auch nachher auf andere (52 insgesamt) Tabellenblätter anwenden.
Konkreter:
- wenn in Zelle I5 Wert x, dann Zellen I6 - I13 einfärben mit Farbe RGB: 255 - 255 - 153
- wenn in Zelle J5 Wert x, dann Zellen I6 - I13 einfärben mit Farbe RGB: 255 - 255 - 153
- wenn in Zelle I14 Wert x, dann Zellen I15 - I22 einfärben mit Farbe RGB: 255 - 255 - 153
- wenn in Zelle J14 Wert x, dann Zellen J15 - J22 einfärben mit Farbe RGB: 255 - 255 - 153
- die Einfärbung könnte auch mit Indexfarben durchgeführt werden.
- diese Reihe möchte in selbstständig in den Spalten erweitern können und auch in den Zeilen - also auch anwenden auf K5 & K6-K13 und weiter in den Zeilen I23 & I24-31 usw.
- die Berechnung soll immer erfolgen, wenn das Tabellenblatt geöffnet wird oder bei Änderungen
- die Datei hat als Tabellenblätter "Jahresplan" und dann "1", "2", … "52" (also für jede KW ein Tabellenblatt. Das Makro könnte auch so hinterlegt werden, dass es auf alle Reiter angewandt wird, aber nicht auf Tabellenblatt.
Ich hoffe ich konnte mein Problem adäquat darstellen.
Beste Grüße und besten Dank für Eure Hilfen
Thomas
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro:Zellen färben,wenn andere Zelle"x"
24.08.2020 13:40:36
Werner
Hallo,
so:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Jahresplan" Then
If Target.Count > 1 Then Exit Sub
Select Case Target.Column
'hier die betroffenen Spalten
Case 9, 10, 11
Select Case Target.Row
'hier die betroffenen Zeilen
Case 4, 14, 24
Target.Offset(1).Resize(9).Interior.Color = IIf(Target = "x", vbYellow,  _
xlNone)
Case Else
End Select
Case Else
End Select
End If
End Sub
Makro ins Codemodul von "DieseArbeitsmappe"
Gruß Werner
Anzeige
AW: Makro:Zellen färben,wenn andere Zelle"x"
24.08.2020 14:12:45
Thomas
:-)))
So einfach kann es sein. Funktioniert hervorragend. Zwei Erweiterungen dazu, wenn möglich:
1. Wie kann ich die RGB Farbe hinterlegen, anstelle von einfach "Gelb"
2. Kann ich auch zwei oder mehr Werte hinterlegen? Also "wenn 'x' oder 'y' dann färben" bzw. sogar, wenn irgendwas, also Wert nicht = "" dann, färben?
Anzeige
AW: Makro:Zellen färben,wenn andere Zelle"x"
24.08.2020 15:33:47
Werner
Hallo,
dann halt so:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Jahresplan" Then
If Target.Count > 1 Then Exit Sub
Select Case Target.Column
Case 9, 10, 11
Select Case Target.Row
Case 4, 14, 24
Target.Offset(1).Resize(9).Interior.Color = IIf(Target  "", RGB(255, 255,  _
153), xlNone)
Case Else
End Select
Case Else
End Select
End If
End Sub
Gruß Werner
Anzeige
AW: Makro:Zellen färben,wenn andere Zelle"x"
28.08.2020 13:54:33
Thomas
Hallo Werner,
ich bitte 1.000x um Entschuldigung! Im Eifer der Freude um die gelungene Formel habe ich ganz vergessen mich nochmal zu melden.
Es funktioniert super und ich bin mit meinen VBA Kenntnissen wieder ein Stück weiter gekommen. Das hat mir sehr geholfen.
Also bitte nicht nachtragend sein, dass ich nicht prompt ein Feedback gegeben habe. Sorry!
Vielen Dank also für die Hilfe!
Anzeige
schon mal was von Feedback gehört? owT
28.08.2020 12:44:05
Feedback
AW: schon mal was von Feedback gehört? owT
28.08.2020 13:55:55
Feedback
Hallo Werner,
ich bitte 1.000x um Entschuldigung! Im Eifer der Freude um die gelungene Formel habe ich ganz vergessen mich nochmal zu melden.
Es funktioniert super und ich bin mit meinen VBA Kenntnissen wieder ein Stück weiter gekommen. Das hat mir sehr geholfen.
Also bitte nicht nachtragend sein, dass ich nicht prompt ein Feedback gegeben habe. Sorry!
Vielen Dank also für die Hilfe!
Anzeige
na dann, Danke für die Rückmeldung. owT
28.08.2020 13:58:57
Werner
AW: Makro:Zellen färben,wenn andere Zelle"x"
31.08.2020 15:18:33
Thomas
Hallo Werner,
ich habe nochmal eine kurze Frage. Ich hätte gedacht, dass ich es mit meinen VBA-Kenntnissen hinbekomme:
Ich möchte die Formel anwenden, mit mehreren "IF" Werten - z.B. so:
Target.Offset(1).Resize(9).Interior.Color = IIf(Target = "S" OR "EL", RGB(255, 255, _
153), xlNone)
Das '...OR "EL"..." scheint aber nicht richtig zu sein. Wie mache ich das?
UND:
Dann möchte ich die Makros noch kombinieren:
In Spalte 1, 3, 5 soll das hier gelten: '... IIf(Target "", RGB...'
In Spalte 9, 10, 11 soll das hier gelten: '...IIf(Target = "S" OR "EL", RGB...'
Ich habe schon viele Kombinationen der Formeln ausprobiert. Aber bekomme es irgendwie nicht alleine hin.
Ich danke für Eure Hilfe.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellen einfärben in Excel basierend auf dem Wert einer anderen Zelle


Schritt-für-Schritt-Anleitung

Um in Excel eine Zelle einzufärben, wenn eine andere Zelle einen bestimmten Wert enthält, kannst du ein VBA-Makro verwenden. Hier sind die Schritte, um dies zu erreichen:

  1. Öffne den Visual Basic-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge das Makro hinzu:

    • Klicke im Projektfenster auf DieseArbeitsmappe.
    • Füge den folgenden VBA-Code in das Fenster ein:
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
       If Sh.Name <> "Jahresplan" Then Exit Sub
       If Target.Count > 1 Then Exit Sub
       Select Case Target.Column
           Case 9, 10, 11
               Select Case Target.Row
                   Case 4, 14, 24
                       Target.Offset(1).Resize(9).Interior.Color = IIf(Target = "x", RGB(255, 255, 153), xlNone)
                   Case Else
               End Select
       End Select
    End Sub
  3. Schließe den VBA-Editor und speichere deine Datei als .xlsm (Makro-fähige Datei).

  4. Teste das Makro:

    • Ändere den Wert in den Zellen I5 oder J5 auf "x", um zu sehen, wie die Zellen I6 bis I13 gelb eingefärbt werden.

Häufige Fehler und Lösungen

  • Fehler bei der Ausführung des Makros:

    • Stelle sicher, dass die Datei als .xlsm gespeichert ist. Andernfalls wird das Makro nicht ausgeführt.
  • Das Makro funktioniert nicht für andere Tabellenblätter:

    • Stelle sicher, dass du die Bedingung für den Tabellennamen im Code entsprechend anpasst.
  • Falsche Farben oder keine Einfärbung:

    • Überprüfe, ob die RGB-Werte korrekt angegeben sind. Du kannst die Werte nach deinen Wünschen anpassen.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die bedingte Formatierung in Excel nutzen:

  1. Markiere den Zellbereich, den du einfärben möchtest.
  2. Gehe zu StartBedingte FormatierungNeue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib die Formel ein, z. B. =A1="x" und wähle die gewünschte Füllfarbe aus.

Diese Methode ist jedoch weniger flexibel, wenn du das auf viele Bereiche und Tabellenblätter anwenden möchtest.


Praktische Beispiele

  • Beispiel 1: Wenn in Zelle A1 "Aktiv" steht, färbe B1 bis B10 grün.

  • VBA-Code:

    If Range("A1").Value = "Aktiv" Then
       Range("B1:B10").Interior.Color = RGB(0, 255, 0)
    End If
  • Beispiel 2: Färbe die Zeile 2, wenn in D2 der Wert "Ja" steht.

  • Bedingte Formatierung:

    • Formel: =$D2="Ja"

Tipps für Profis

  • Verwende benannte Bereiche: Das macht deinen Code klarer und leichter zu lesen.
  • Kombiniere mehrere Bedingungen: Nutze IIf oder And/Or in deinem VBA-Code, um komplexe Logiken zu erstellen.
  • Teste regelmäßig: Stelle sicher, dass dein Makro in verschiedenen Szenarien funktioniert, besonders wenn du mehrere Bedingungen hinzufügst.

FAQ: Häufige Fragen

1. Wie kann ich die Farbe ändern, die verwendet wird? Du kannst die RGB-Werte im Makro anpassen, um die gewünschte Farbe zu ändern.

2. Kann ich mehrere Werte für die Einfärbung verwenden? Ja, du kannst Or verwenden, um mehrere Bedingungen im VBA-Code zu kombinieren, z. B.:

If Target = "x" Or Target = "y" Then

3. Funktioniert das Makro auch in Excel Online? Leider funktioniert VBA nicht in Excel Online. Du musst die Desktop-Version verwenden, um Makros auszuführen.

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