Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1368to1372
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit VBA - Bedingte Formatierung

Problem mit VBA - Bedingte Formatierung
23.07.2014 12:34:36
Kristian
Hallo zusammen,
ich habe für eine größere Excel-Tabelle eine Bedingte Formatierung per VBA vorgehabt. Bei bestimmten Eingaben sollen die Zellen entsprechend gefärbt werden. Leider bekomme ich bei dem Code die Fehlermeldung "Laufzeitfehler 1004 - Die Interior-Eigenschaft des Range-Objektes kann nicht zugeordnet werden.". Ich hoffe mir kann dabei jemand helfen:
Private Sub Worksheet_Change(ByVal Target As Range)
ERRORHANDLER:
Application.EnableEvents = True
' Füllfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
Set RaBereich = Range("G1:G500")
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
With RaZelle
Select Case UCase(.Value)   ' Umwandlung der Eingabe in Großbuchstaben
Case "EPM"
.Interior.Color = RGB(83, 141, 213)
.Font.Color = RGB(255, 255, 0)
.Font.FontStyle = "Bold Italic"
.HorizontalAlignment = xlCenter
.Cells = UCase(.Value)
Case "GEPLANT"
.Interior.Color = RGB(255, 255, 0)
.Font.Color = RGB(255, 0, 0)
.Font.FontStyle = "Bold Italic"
.HorizontalAlignment = xlCenter
.Cells = UCase(.Value)
Case "INFO"
.Interior.Color = RGB(255, 0, 0)
.Font.Color = RGB(255, 255, 255)
.Font.FontStyle = "Bold Italic"
.HorizontalAlignment = xlCenter
.Cells = UCase(.Value)
Case Else
.Font.ColorIndex = xlAutomatic
.Interior.ColorIndex = xlAutomatic
.Cells.Style = "Normal"
.Font.Color = 0
.NumberFormat = "General"
End Select
End With
Next RaZelle
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing                 ' Variable leeren
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit VBA - Bedingte Formatierung
23.07.2014 12:54:29
Luschi
Hallo Kristian,
da Du nicht nur formatierst, sondern auch den Wert in der Zelle änderst (Großbuchstaben), rennt sich das Ereignis tot und stürzt dann mit der angebegenen Fehlermeldung ab.
Jede Zelländerung per Vba ruft ebenfalls das Change()-Ereignis der Tabelle auf.
Das kann man verhindern, indem man diese Auto-Routine vorrübergehend abschaltet. Mache es _ deshalb so:

Private Sub Worksheet_Change(ByVal Target As Range)
ERRORHANDLER:
Application.EnableEvents = True
' Füllfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
Application.EnableEvents = False
Set RaBereich = ActiveSheet.Range("G1:G500")
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
'der weitere Vba-Code
End If
Set RaBereich = Nothing                 ' Variable leeren
'nicht vergessen, sonst sind & bleiben alle Ereignosse deaktiviert
Application.EnableEvents = True
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
Dein Betreff 'Bedingte Formatierung' ist irre-...
23.07.2014 13:11:39
Luc:-?
…führend, Kristian,
denn es handelt sich bei dem, was du vorhast mitnichten um Bedingte Formatierung! :-[
Unter Bedingte Formatierung versteht man in der Xl-Welt ein ganz bestimmtes Feature, der Begriff darf/sollte also nicht für irgendetwas Anderes verwendet wdn! Hier wäre so etwas wie „VBA-gestützte (Direkt-)Formatierung nach Bedingungen“ angebracht gewesen. Der Hinweis auf VBA reicht nicht zur Unterscheidung, denn man kann mit VBA auch eine echte BedingtFormatierung anlegen!
Gruß, Luc :-?

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige