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

Zellen farbig markieren ???

Forumthread: Zellen farbig markieren ???

Zellen farbig markieren ???
01.10.2003 09:29:30
Dino
Hi Leute,

ich habe ein Arbeitsblatt "Vorlage" in dem ich im Bereich A14:W2000 die Daten eintippe. Jetzt möchte ich per ein Makro erreichen, das es mir die erfordeliche Zellen farbig markiert, um selber zu wissen in welchen Zellen ich was eingeben muss.

Beispiel:

nur wenn in Zelle C14 ein "BR" steht, dann sollen die Zellen D14, E14, G14, J14 und P14 farbig markiert sein
nur wenn in Zelle C25 ein "BA" steht, dann sollen die Zellen G25, K25, N25, P25 und T25 farbig markiert sein
nur wenn in Zelle C36 ein "LT" steht, dann sollen die Zellen F36, G36, K36, L36 und U36 farbig markiert sein
nur wenn in Zelle C50 ein "41" steht, dann sollen die Zellen F50, I50 und W50 farbig markiert sein

Mit "farbig markiert" (z.B. gelb) meine ich, die Markierung soll nur solange man sich in eine Zeile meines Bereiches (A14:W2000) befindet sichtbar sein mit Voraussetzung das in Spalte C ein "BR", "BA", "LT" usw. steht.

Vielen Dank im voraus für jede Hilfe...

Gruß
Dino
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen farbig markieren ???
01.10.2003 09:47:41
markus
ja das geht auch über format bedingte formatierung da brauchste kein makro für!!!!
AW: Zellen farbig markieren ???
01.10.2003 09:59:07
Dino
Hi markus,

ich habe in meinem Beispiel 4 Möglichkeiten gennant (BR, BA, LT, 41). Eigentlich habe ich noch viele andere, und soweit ich weiß über bedingte Formatierung lassen sich nur drei Kriterien einstellen?!

Gruß
Dino
Anzeige
AW: Zellen farbig markieren ???
01.10.2003 10:46:20
Galenzo
Hallo,
richtig, mit der bedingten Formatierung kannst du nur 3 Bedingungen berücksichtigen.
Also mußt du dir ein Makro schreiben, welches die Eingaben in den zu beobachtenden Zellen auswertet.
Ich hab mal eins zusammengebastelt, so wie ich deine Problembeschreibung verstanden habe -->


Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr()
Dim arrLen As Integer
Dim Color As Integer
Dim i%
Dim rng As Range

    Set rng = Range("a1:d60")
    If Not Intersect(Target, rng) Is Nothing Then
        ' eine Zelle innerhalb des Bereiches wurde verändert
        
        If Target.Column = 3 Then
            ' wir sind in Spalte C
           
            Select Case Target.Row
                
                Case 14:
                        If Target.Value = "BF" Then
                            arrLen = 5
                            Color = 14
                            ReDim arr(arrLen)
                            arr = Array(4, 5, 7, 10, 16)
                        End If
                Case 25:
                        If Target.Value = "BA" Then
                            arrLen = 5
                            Color = 4
                            ReDim arr(arrLen)
                            arr = Array(7, 11, 14, 16, 20)
                        End If
                Case 36:
                        If Target.Value = "LT" Then
                            arrLen = 5
                            Color = 23
                            ReDim arr(arrLen)
                            arr = Array(6, 7, 11, 12, 21)
                        End If
                Case 50:
                        If Target.Value = "41" Then
                            arrLen = 3
                            Color = 11
                            ReDim arr(arrLen)
                            arr = Array(6, 9, 23)
                        End If
            
            End Select
            
            For i = 0 To (arrLen - 1)
                Cells(Target.Row, arr(i)).Interior.ColorIndex = Color
            Next
            
        End If
        
    End If

End Sub


Nun brauchst du nur noch ein Makro für das "Zurückfärben" der markierten Zellen bei Verlassen deines Bereiches A14:W2000. Dazu kannst du ja das Ereignis Worksheet_SelectionChange auswerten.

Viel Erfolg dabei!
Anzeige
AW: Zellen farbig markieren ???
01.10.2003 11:03:01
WernerB.
Hallo Dino,

dieses Makro gehört in das Modul des betreffenden Tabellenblattes:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A14:W2000")) Is Nothing Then
If Range("C14").Value = "BR" Then _
Range("D14,E14,G14,J14,P14").Interior.ColorIndex = 6
If Range("C25").Value = "BA" Then _
Range("G25,K25,N25,P25,T25").Interior.ColorIndex = 6
If Range("C36").Value = "LT" Then _
Range("F36,G36,K36,L36,U36").Interior.ColorIndex = 6
If Range("C50").Value = "41" Then _
Range("F50,I50,W50").Interior.ColorIndex = 5
Else
Range("D14,E14,G14,J14,P14,G25,K25,N25,P25,T25,F36,G36,K36,L36,U36,F50,I50,W50"). _
Interior.ColorIndex = xlNone
End If
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).
Anzeige
AW: Zellen farbig markieren ???
01.10.2003 11:39:51
Dino
Halo Werner und Galenzo,

erstmal vielen Dank für schnelle Antworten...

Im Bereich C14 bis C2000 kann alles vorkommen, also ein "BR", "BA", "LT", "41" usw. (Rest erweitere ich selber, wenn ich ein Makro habe). Siehe: https://www.herber.de/bbs/user/1225.xls

In Euerem Makro bezieht Euch fest auf C14, C25, C36 und C50.
Das waren nur ein Paar bespiele von mir, damit man es besser sehen könnte, was ich mit Makro erreichen möchte.

Noch was:

farbige Markierung soll solange sichtbar sein, solange ich mich in eine Zeile (im Bereich A14:W2000) befinde. Was in der Zeile (im Bereich A14:W2000) farbig markiert wird, hängt davon ab, was in Spalte C steht (ein "BR", "BA", "LT", oder "41" usw.).

Ich hoffe, daß Ihr mich versteht :)

Vielen Dank nochmal....

Viele Grüße aus Düsseldorf
Dino
Anzeige
AW: Zellen farbig markieren ???
01.10.2003 12:24:19
WernerB.
Hallo Dino,

ich hoffe, dass Dir das Makro so gefällt. Allerdings werden jetzt alle farbigen Zellen im Bereich "A14:W200" entfärbt, wenn Du eine Zelle außerhalb dieses Bereiches anklickst.

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim i As Long
If Not Intersect(Target, Range("A14:W2000")) Is Nothing Then
Application.ScreenUpdating = False
For i = 14 To 2000
Select Case Cells(i, 3).Value
Case "BR"
Range("D" & i & ",E" & i & ",G" & i & ",J" & i & ",P" & i).Interior.ColorIndex = 6
Case "BA"
Range("G" & i & ",K" & i & ",N" & i & ",P" & i & ",T" & i).Interior.ColorIndex = 6
Case "LT"
Range("F" & i & ",G" & i & ",K" & i & ",L" & i & ",U" & i).Interior.ColorIndex = 6
Case "41"
Range("F" & i & ",I" & i & ",W" & i).Interior.ColorIndex = 6
End Select
Next i
Application.ScreenUpdating = True
Else
Range("A14:W2000").Interior.ColorIndex = xlNone
End If
End Sub

Gruß WernerB.
Anzeige
AW: Zellen farbig markieren ???
01.10.2003 13:21:16
Dino
Hi Werner,

kann man das Makro noch so anpassen, das wenn ich z.B. anstatt ein "LT" ein "41" eingebe das dann die alte (von "LT") Markierungen automatisch verschwinden ohne daß ich nach der neue Eingabe (sprich: "LT" zu "41") irgendwo ausser meines Bereiches (A14:W2000) eine Zelle anklicken muss damit sich die Änderungen aktuallisieren?

PS: Die Änderungen beziehen sich wie bis jetzt auf "BR", "BA", "LT", "41".

Danke vielmals.....

Gruß
Dino
Anzeige
AW: Zellen farbig markieren ???
02.10.2003 07:27:33
WernerB.
Hallo Dino,

so sollte es klappen:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim i As Long
Application.ScreenUpdating = False
Range("A14:W2000").Interior.ColorIndex = xlNone
If Not Intersect(Target, Range("A14:W2000")) Is Nothing Then
For i = 14 To 2000
Select Case Cells(i, 3).Value
Case "BR"
Range("D" & i & ",E" & i & ",G" & i & ",J" & i & ",P" & i).Interior.ColorIndex = 6
Case "BA"
Range("G" & i & ",K" & i & ",N" & i & ",P" & i & ",T" & i).Interior.ColorIndex = 6
Case "LT"
Range("F" & i & ",G" & i & ",K" & i & ",L" & i & ",U" & i).Interior.ColorIndex = 6
Case "41"
Range("F" & i & ",I" & i & ",W" & i).Interior.ColorIndex = 6
End Select
Next i
End If
Application.ScreenUpdating = True
End Sub

Gruß WernerB.
Anzeige
AW: Zellen farbig markieren ???
02.10.2003 09:56:12
Dino
Morgen Werner,

supper jetzt werden bei neuen Eingaben die alte Markierungen aufgehoben....

Letzte Frage noch:

z.B. wenn ich meinem Bereich (A14:W2000) irgendwo in eine Zelle klicke, werden alle Zellen (wo in C ein "BR", "BA", "LT", oder "41")
farbig markiert. Kann man die farbige Markierungen nur auf die aktuelle Zeile begrenzen?
Wenn das nicht geht, ich kann ja trotzdem mit deinem aktuellem Makro leben :)

Vielen Dank..........

Schöne Grüße aus Düsseldorf
Dino
Anzeige
AW: Zellen farbig markieren ???
02.10.2003 10:07:46
WernerB.
Hallo Dino,

auch dieser Wunsch soll Dir erfüllt werden:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim i As Long
Application.ScreenUpdating = False
Range("A14:W2000").Interior.ColorIndex = xlNone
If Not Intersect(Target, Range("A14:W2000")) Is Nothing Then
i = Target.Row
Select Case Cells(i, 3).Value
Case "BR"
Range("D" & i & ",E" & i & ",G" & i & ",J" & i & ",P" & i).Interior.ColorIndex = 6
Case "BA"
Range("G" & i & ",K" & i & ",N" & i & ",P" & i & ",T" & i).Interior.ColorIndex = 6
Case "LT"
Range("F" & i & ",G" & i & ",K" & i & ",L" & i & ",U" & i).Interior.ColorIndex = 6
Case "41"
Range("F" & i & ",I" & i & ",W" & i).Interior.ColorIndex = 6
End Select
End If
Application.ScreenUpdating = True
End Sub

Gruß WernerB.
Anzeige
AW: Zellen farbig markieren ???
02.10.2003 10:27:48
Dino
BEST DANK Werner

Schöne Grüße
Dino

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zellen farbig markieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um Zellen in Excel farbig zu markieren, wenn bestimmte Bedingungen erfüllt sind, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du im linken Bereich mit der rechten Maustaste auf dein Arbeitsblatt klickst und "Einfügen" > "Modul" wählst.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Dim i As Long
    Application.ScreenUpdating = False
    Range("A14:W2000").Interior.ColorIndex = xlNone
    If Not Intersect(Target, Range("A14:W2000")) Is Nothing Then
        i = Target.Row
        Select Case Cells(i, 3).Value
            Case "BR"
                Range("D" & i & ",E" & i & ",G" & i & ",J" & i & ",P" & i).Interior.ColorIndex = 6
            Case "BA"
                Range("G" & i & ",K" & i & ",N" & i & ",P" & i & ",T" & i).Interior.ColorIndex = 6
            Case "LT"
                Range("F" & i & ",G" & i & ",K" & i & ",L" & i & ",U" & i).Interior.ColorIndex = 6
            Case "41"
                Range("F" & i & ",I" & i & ",W" & i).Interior.ColorIndex = 6
        End Select
    End If
    Application.ScreenUpdating = True
End Sub
  1. Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.
  2. Teste das Makro, indem du in die Zellen des Bereichs A14:W2000 wechselst.

Häufige Fehler und Lösungen

  • Problem: Die Zellen werden nicht farbig markiert.

    • Lösung: Stelle sicher, dass das Makro im richtigen Arbeitsblatt-Modul eingefügt wurde. Der Code muss in das Modul des Arbeitsblattes eingefügt werden, in dem du die Zellen farbig markieren möchtest.
  • Problem: Alle Zellen werden bei einer Auswahl außerhalb des Bereichs zurückgesetzt.

    • Lösung: Überprüfe, ob die Bedingungen im Code korrekt eingestellt sind und dass der Code keine unerwünschten Bereinigungen vornimmt.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die bedingte Formatierung nutzen. Beachte jedoch, dass diese nur bis zu drei Bedingungen gleichzeitig zulässt. Um mehr Bedingungen zu integrieren, könntest du:

  1. Eine zusätzliche Hilfsspalte verwenden, um die Werte zu aggregieren.
  2. Mit einer Kombination aus WENN-Funktionen und bedingter Formatierung arbeiten, um die gewünschten Zellen zu formatieren.

Praktische Beispiele

Hier sind einige Beispiele, wie du die VBA-Lösung anpassen kannst:

  • Farben ändern: Du kannst die Interior.ColorIndex-Werte ändern, um andere Farben zu verwenden. Zum Beispiel:

    • ColorIndex = 3 für Rot
    • ColorIndex = 4 für Grün
  • Zusätzliche Bedingungen: Du kannst weitere Case-Bedingungen hinzufügen, um die Logik zu erweitern.


Tipps für Profis

  • Optimierung: Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms zu vermeiden, wenn das Makro läuft.
  • Performance verbessern: Wenn du mit großen Datenmengen arbeitest, kannst du den Bereich, der überprüft wird, anpassen, um die Leistung zu optimieren.
  • Debugging: Verwende Debug.Print im Makro, um Werte in der Konsole anzuzeigen, falls du Probleme beim Debuggen hast.

FAQ: Häufige Fragen

1. Wie viele Bedingungen kann ich mit VBA einfügen?
Du kannst theoretisch so viele Bedingungen hinzufügen, wie du möchtest, solange du die Struktur des Codes beibehältst.

2. Funktioniert das Makro in allen Excel-Versionen?
Ja, das Makro sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen (Excel 2007 und höher).

3. Kann ich die Zellen auch automatisch zurücksetzen, wenn ich eine andere Zeile auswähle?
Ja, das aktuelle Makro setzt die Farben zurück, wenn du eine Zelle außerhalb des definierten Bereichs auswählst.

4. Gibt es eine Möglichkeit, die Markierung zu speichern?
Das Standardverhalten der Markierung ist temporär. Du kannst die Markierungen jedoch in einem separaten Arbeitsblatt oder einer Datei speichern, wenn du dies in den Code integrierst.

Mit diesen Anleitungen und Tipps kannst du in Excel Zellen farbig markieren und dein Arbeitsblatt effektiver gestalten!

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