Herbers Excel-Forum - das Archiv
Zellen farbig markieren ???

|
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

 |
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!!!!
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
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!
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).
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
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.
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
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.
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
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.
Betrifft: AW: Zellen farbig markieren ???
von: Dino
Geschrieben am: 02.10.2003 10:27:48
BEST DANK Werner
Schöne Grüße
Dino