Frage von SanchezAkaMass, 29

(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?

Expertenantwort
von Ninombre, Community-Experte für Excel, 12

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.

Kommentar von Iamiam ,

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)

Kommentar von Ninombre ,

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.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten