(Excel) Wenn ein Passwort geschützter Bereich entsperrt wird, soll kästchen auf grün gesetzt werden...wie ist die Formel oder der Lösungsweg?

...komplette Frage anzeigen

1 Antwort

Meinst Du den Blattschutz aufheben? Da wäre mir kein direkt abfragbares Event bekannt. Man könnte über Änderungen des Tabellenblatts überwachen gehen, aber das würde erst greifen, wenn nach Aufheben des Blattschutzes noch eine Änderung vorgenommen wird.

Private Sub Worksheet_Change(ByVal Target As Range)
If Tabelle1.ProtectContents = False Then MsgBox "Blattschutz aufgehoben!"

End Sub

So richtig den Sinn der Abfrage konnte ich aber nicht nachvollziehen, vielleicht gäbe es dann auch noch andere Lösungsideen.

oder grün markieren:

If Tabelle1.ProtectContents = False Then

Zelle.interior.color = vbgreen: MsgBox "Blattschutz aufgehoben!"

else

Zelle.interior.color = xlautomatic

end if

Wobei Zelle sein kann: Activesheet.activecell oder

Activesheet.cells(zeile, Spaltennummer) 'also zB Cells(1, 7) für G1 oder

Worksheets("Blattname").Range("A1").

anstatt vbgreen auch = RGB(0, 255, 0)

0
@Iamiam

Ich merkte gerade, dass mit der Messagebox das Problem entsteht, dass bei jeder Änderung die Prüfung auf protectcontents=false zuschlägt, also permanent die Meldung kommt. Beim Färben der Zelle wäre es zwar auch unnötig, aber zumindest nicht lästig. Abhilfe wäre nur eine globale Variable zu setzen, um die erste Änderung von den anderen zu unterscheiden.

0

Was möchtest Du wissen?