Supportnet / Forum / Tabellenkalkulation
vba bedingte Formatierung im Excel
Frage
Hallo,
ich bin ein totaler Anfänger was vba im Excel betrifft deshalb brauche ich hilfe. Ich möchte folgendes machen (mit hilfe vba funktionieren soll das ganze wie eine bedingte Formatierung. Diese funktioniert ja bekanntlich nur mit 3 werten ich habe aber 7 zur auswahl)
in der Zelle F121 wird eins von den 7 Kennzeichen z.B. t (sind alles Buchstaben) eingegeben dann soll der Bereich F1 bis F12 z.B. rot hinterlegt werden. Dann gebe ich weiter in der Zelle F123 wieder eins ein z.B. r, dann soll der Bereich F13 bis F25 z.B. grün eingefärbt werden usw.
Diese Eingaben der Kennzeichen passiert auch in der Zelle G121 bzw. G123; H121 bzw. H123 usw. Dann soll sich analog zu oben die Bereiche H1 bis G12, G13-G25 usw. einfärben.
Das ganz soll aber ohne Button funktionieren und wenn möglich ein einzelnes Tabellenblatt gelten.
Ich hoffe ich konnte euch mein Problem vermitteln und freue mich, wenn mir ein vba-Spezi helfen kann.
Danke
Gruß Ron
Antwort 1 von coros
Hallo Ron,
schau mal auf meiner HP in der Rubrik Beispieldateien und dort dann in dem Beispiel 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
schau mal auf meiner HP in der Rubrik Beispieldateien und dort dann in dem Beispiel 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von rosch
Hallo Oliver,
erst einmal danke für deine schnelle Antwort. Das ist eine super HP.
Das Tabellenblatt "Zellenfarbe in Zeilenbereich" kommt dem, was ich versuche schon sehr nahe.
Problem ist nur das: Wie kann ich den vba-Code umbauen (ich habe noch keine Ahnung davon) das ich z.B. das t in Zelle A1 z.B. in Zelle F121 eingebe und dann nicht der Berich Zeilen B1 bis L1 eingefärbt werden sondern Bereich F1-F12?
Gruß Ron
erst einmal danke für deine schnelle Antwort. Das ist eine super HP.
Das Tabellenblatt "Zellenfarbe in Zeilenbereich" kommt dem, was ich versuche schon sehr nahe.
Problem ist nur das: Wie kann ich den vba-Code umbauen (ich habe noch keine Ahnung davon) das ich z.B. das t in Zelle A1 z.B. in Zelle F121 eingebe und dann nicht der Berich Zeilen B1 bis L1 eingefärbt werden sondern Bereich F1-F12?
Gruß Ron
Antwort 3 von coros
Hallo Ron,
dann würde das in etwa wie nachfolgender Code aussehen. Tausche den Code gegen den vorhandenen im VBA-Projekt desTabellenblattes, in dem er wirken soll, aus.
Bei Fragen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
dann würde das in etwa wie nachfolgender Code aussehen. Tausche den Code gegen den vorhandenen im VBA-Projekt desTabellenblattes, in dem er wirken soll, aus.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Bereich1 As Range, Bereich2 As Range, Bereich3 As Range
Dim Bereich4 As Range, Bereich5 As Range, Bereich6 As Range
Rem: Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub
Rem: Bereiche vergeben
Rem: Bereiche vergeben
Set Bereich1 = Range("F121")
Set Bereich2 = Range("F123")
Set Bereich3 = Range("G121")
Set Bereich4 = Range("G123")
Set Bereich5 = Range("H121")
Set Bereich6 = Range("H123")
Rem:########################### Spalte F #########################################
Select Case Bereich1
Case "k"
Range(Cells(1, 6), Cells(12, 6)).Interior.ColorIndex = 3
Case "u"
Range(Cells(1, 6), Cells(12, 6)).Interior.ColorIndex = 4
Case "s"
Range(Cells(1, 6), Cells(12, 6)).Interior.ColorIndex = 5
Case "t"
Range(Cells(1, 6), Cells(12, 6)).Interior.ColorIndex = 7
Case Else
Rows(Target.Row).Interior.ColorIndex = 2
End Select
Select Case Bereich2
Case "k"
Range(Cells(13, 6), Cells(25, 6)).Interior.ColorIndex = 3
Case "u"
Range(Cells(13, 6), Cells(25, 6)).Interior.ColorIndex = 4
Case "s"
Range(Cells(13, 6), Cells(25, 6)).Interior.ColorIndex = 5
Case "t"
Range(Cells(13, 6), Cells(25, 6)).Interior.ColorIndex = 7
Case Else
Rows(Target.Row).Interior.ColorIndex = 2
End Select
Rem:########################### Spalte G #########################################
Select Case Bereich3
Case "k"
Range(Cells(1, 7), Cells(12, 7)).Interior.ColorIndex = 3
Case "u"
Range(Cells(1, 7), Cells(12, 7)).Interior.ColorIndex = 4
Case "s"
Range(Cells(1, 7), Cells(12, 7)).Interior.ColorIndex = 5
Case "t"
Range(Cells(1, 7), Cells(12, 7)).Interior.ColorIndex = 7
Case Else
Rows(Target.Row).Interior.ColorIndex = 2
End Select
Select Case Bereich4
Case "k"
Range(Cells(13, 7), Cells(25, 7)).Interior.ColorIndex = 3
Case "u"
Range(Cells(13, 7), Cells(25, 7)).Interior.ColorIndex = 4
Case "s"
Range(Cells(13, 7), Cells(25, 7)).Interior.ColorIndex = 5
Case "t"
Range(Cells(13, 7), Cells(25, 7)).Interior.ColorIndex = 7
Case Else
Rows(Target.Row).Interior.ColorIndex = 2
End Select
Rem:########################### Spalte H #########################################
Select Case Bereich5
Case "k"
Range(Cells(1, 8), Cells(12, 8)).Interior.ColorIndex = 3
Case "u"
Range(Cells(1, 8), Cells(12, 8)).Interior.ColorIndex = 4
Case "s"
Range(Cells(1, 8), Cells(12, 8)).Interior.ColorIndex = 5
Case "t"
Range(Cells(1, 8), Cells(12, 8)).Interior.ColorIndex = 7
Case Else
Rows(Target.Row).Interior.ColorIndex = 2
End Select
Select Case Bereich6
Case "k"
Range(Cells(13, 8), Cells(25, 8)).Interior.ColorIndex = 3
Case "u"
Range(Cells(13, 8), Cells(25, 8)).Interior.ColorIndex = 4
Case "s"
Range(Cells(13, 8), Cells(25, 8)).Interior.ColorIndex = 5
Case "t"
Range(Cells(13, 8), Cells(25, 8)).Interior.ColorIndex = 7
Case Else
Rows(Target.Row).Interior.ColorIndex = 2
End Select
End SubBei Fragen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von rosch
Hallo Oliver,
ich möchte mich bei dir bedanken. Es funktioniert.
Deine HP werde ich jetzt öfters mal besuchen. Die ist es super.
Gruß Ron
ich möchte mich bei dir bedanken. Es funktioniert.
Deine HP werde ich jetzt öfters mal besuchen. Die ist es super.
Gruß Ron

