VBA Code "greift" nicht.
29.09.2005 07:49:03
Kay
in dem Tabellenbereich "DJ4:DQ150" stehen verschiedene Zeichen (T;K;G1;G2;S,M) in den einzelnen Zellen. Abhängig von dem jeweiligen Zeichen sollte nun die Zelle eingefärbt werden. Ähnlich wie bei der bedingten Formatierung - nur dass ich hier mehr Bedingungen habe.
Ich habe mir über goooogle ein VBA Script rausgesucht, was mich hierbei unterstützt, da ich in VBA leider keine großen Kentnisse habe. Mein Problem ist nun, dass sich die Zellen nicht (automatisch) färben. Die Zeichen in dem zellbereich werden über Formeln "generiert". Gebe ich jedoch ein Zeichen "manuell" ein, dann färbt sich die Zelle entsprechend.
Was machen ich falsch, wenn die Zellen sich auch eigenständig in Abhängigkeit des "Formelwertes" färben sollen?
Hajos VBA Code habe ich in ein Modul kopiert:
Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies *
'* 19.07.03, 30.10.03 *
'* erstellt von Hajo.Ziplies@web.de *
'* <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a> *
' HINTERGRUND
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
'Set RaBereich = Range("DJ4:DQ150")
' noch mehr Bereiche
Set RaBereich = Union(Range("DJ4:DJ150"), Range("DK4:DK150"), Range("DL4:DL150"), Range("DM4:DM150"), Range("DN4:DN150"), Range("DO4:DO150"), Range("DP4:DP150"), Range("DQ4:DQ150"))
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
' ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In Range(Target.Address)
With Range(RaZelle.Address, RaZelle.Offset(0, 0).Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
Select Case UCase(RaZelle.Value) ' UMWANDLUNG DER Eingabe in Großbuchstaben
Case "T"
.Interior.ColorIndex = 3
.Font.ColorIndex = 0
' Schriftfarbe automatisch
'.NumberFormat = "General"
' Zellenformat Standard
Case "K"
.Interior.ColorIndex = 6
.Font.ColorIndex = 0
' Schriftfarbe automatisch
'.NumberFormat = "General"
' Zellenformat Standard
Case "G1"
.Interior.ColorIndex = 4
.Font.ColorIndex = 0
' Schriftfarbe Weiß
'.NumberFormat = ";;;"
' nicht sichtbar
Case "G2"
.Interior.ColorIndex = 5
.Font.ColorIndex = 0
' Schriftfarbe Weiß
'.NumberFormat = ";;;"
' nicht sichtbar
Case "M"
.Interior.ColorIndex = 7
.Font.ColorIndex = 0
' Schriftfarbe Weiß
'.NumberFormat = ";;;"
' nicht sichtbar
Case "S"
.Interior.ColorIndex = 8
.Font.ColorIndex = 0
' Schriftfarbe Weiß
'.NumberFormat = ";;;"
' nicht sichtbar
Case Else
.Interior.ColorIndex = xlNone
' Keine
.Font.ColorIndex = 0
' Schriftfarbe automatisch
'.NumberFormat = "General"
' Zellenformat Standard
End Select
End If
End With
Next RaZelle
' ActiveSheet.protect ("Passwort")
Set RaBereich = Nothing
End Sub
Danke für eucre Hilfe!
Kay.