online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon AceRider vom 28.09.2022, 17:41 Options

Lösung

Bedingte Formatierung mit VBA bei Blattschutz

Hallo lieber Supporter,

ich möchte eine bedingte Formatierung mit mehr als drei Bedingungen bei einem Tabellenblatt mit Blattschutz anwenden. Dazu verwende ich folgenden Code:


Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngCell As Range
Dim bytColor As Byte

' Bereich der überwacht wird
Set Target = Intersect(Target, Range("j6:an31"))
If Target Is Nothing Then Exit Sub

For Each rngCell In Target
Select Case rngCell.Value
Case "k"
bytColor = 6
Case "K"
bytColor = 6
Case "u"
bytColor = 33
Case "U"
bytColor = 33
Case "d"
bytColor = 38
Case "D"
bytColor = 38
Case "g"
bytColor = 4
Case "G"
bytColor = 4
Case Else
bytColor = 0
End Select

rngCell.Interior.ColorIndex = bytColor

Next rngCell
End Sub


Er meckert mich jetzt an, dass ein Blattschutz vorhanden ist=> Laufzeitfehler 1004, die Zeile "rngCell.Interior.ColorIndex = bytColor" wird als Fehler ausgegeben.

Wie kann ich das umgehen?

Viele Grüße & vielen Dank

Stefan

Ps. Suchfunktion hat hier nichts gebracht.....


Antwort schreiben

Antwort 1 von coros vom 28.09.2022, 19:21 OptionsLösung

Lösung
Hallo Stefan,

der VBA-Code sähe dann wie folgt aus.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngCell As Range
Dim bytColor As Byte

' Bereich der überwacht wird
Set Target = Intersect(Target, Range("j6:an31"))
If Target Is Nothing Then Exit Sub

ActiveSheet.Unprotect "Hier Dein Passwort"

For Each rngCell In Target
Select Case rngCell.Value
Case "k"
bytColor = 6
Case "K"
bytColor = 6
Case "u"
bytColor = 33
Case "U"
bytColor = 33
Case "d"
bytColor = 38
Case "D"
bytColor = 38
Case "g"
bytColor = 4
Case "G"
bytColor = 4
Case Else
bytColor = 0
End Select

rngCell.Interior.ColorIndex = bytColor

Next rngCell

ActiveSheet.Protect "Hier Dein Passwort"

End Sub
Trage Dein Passwort in den Zeilen

ActiveSheet.Unprotect "Hier Dein Passwort"
und

ActiveSheet.Protect "Hier Dein Passwort"
dort ein, wo jetzt "Hier Dein Passwort" (Anführungszeichen müssen stehen bleiben) ein.

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 AceRider vom 01.10.2022, 10:05 Options

Hallo Oliver,

vielen Dank, funktioniert, Du hast mir sehr weitergeholfen!

Viele Grüße & ein schönes Wochenende

Stefan

Ähnliche Themen

Bedingte Formatierung
afetinci  21.04.2009 - 308 Hits - 14 Antworten

Excel VBA: Spalten ausblenden mit Blattschutz
Datjodie  18.07.2009 - 468 Hits - 1 Antwort

VBA: Füllfarbe "vs". Bedingte Formatierung
Tomschi  27.07.2009 - 293 Hits - 6 Antworten

Benötige Hilfe für eine bedingte Formatierung mit VBA
DaveB  06.11.2009 - 424 Hits - 16 Antworten

bedingte Formatierung via VBA
Zwula  11.11.2009 - 389 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026