Herbers Excel-Forum - das Archiv

Zellen farbig markieren ???

Bild

Betrifft: Zellen farbig markieren ???
von: Dino
Geschrieben am: 01.10.2003 09:29:30
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

Bild

Betrifft: AW: Zellen farbig markieren ???
von: markus
Geschrieben am: 01.10.2003 09:47:41
ja das geht auch über format bedingte formatierung da brauchste kein makro für!!!!
Bild

Betrifft: AW: Zellen farbig markieren ???
von: Dino
Geschrieben am: 01.10.2003 09:59:07
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
Bild

Betrifft: AW: Zellen farbig markieren ???
von: Galenzo
Geschrieben am: 01.10.2003 10:46:20
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!
Bild

Betrifft: AW: Zellen farbig markieren ???
von: WernerB.
Geschrieben am: 01.10.2003 11:03:01
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).
Bild

Betrifft: AW: Zellen farbig markieren ???
von: Dino
Geschrieben am: 01.10.2003 11:39:51
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
Bild

Betrifft: AW: Zellen farbig markieren ???
von: WernerB.
Geschrieben am: 01.10.2003 12:24:19
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.
Bild

Betrifft: AW: Zellen farbig markieren ???
von: Dino
Geschrieben am: 01.10.2003 13:21:16
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
Bild

Betrifft: AW: Zellen farbig markieren ???
von: WernerB.
Geschrieben am: 02.10.2003 07:27:33
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.
Bild

Betrifft: AW: Zellen farbig markieren ???
von: Dino
Geschrieben am: 02.10.2003 09:56:12
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
Bild

Betrifft: AW: Zellen farbig markieren ???
von: WernerB.
Geschrieben am: 02.10.2003 10:07:46
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.
Bild

Betrifft: AW: Zellen farbig markieren ???
von: Dino
Geschrieben am: 02.10.2003 10:27:48
BEST DANK Werner

Schöne Grüße
Dino
 Bild
Excel-Beispiele zum Thema " Zellen farbig markieren ???"
Makros in Abhängigkeit vom Zellennamen aufrufen Zellen auf Kommentar überprüfen
Spalten bedingt summieren und Zellen formatieren Text aus Textbox in Zellen aufteilen
Zellen vergleichen und markieren Zählen formatierter Zellen
Daten aus Textdatei gezielt in Zellen übernehmen Zellen verbinden und trennen
Zellen bei Minuswerten schraffieren Zeilen oberhalb der markierten Zellen einfügen