Hat jemand eine Idee, ob das überhaupt geht oder rührt das an den Grundfesten der Sicherheit?
Günnie
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Unprotect "test" ' "Tabelle1" und "test" müßtest Du natürlich anpassen
'dein Makro
Sheet("Tabelle1").Protect "test"
End Sub
Um in geschützte Zellen mit VBA zu schreiben, kannst Du die folgenden Schritte befolgen:
Öffne die Excel-Datei und gehe zu der Tabelle, in der Du die geschützten Zellen hast.
Erstelle einen Button (z. B. ein CommandButton), den Du mit dem Makro verknüpfen möchtest.
Öffne den VBA-Editor mit ALT + F11
.
Füge den folgenden Code in das Modul des Buttons ein:
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Unprotect "test" ' "Tabelle1" und "test" anpassen
' Hier kommt dein Makro, das in die geschützte Zelle schreibt
Sheets("Tabelle1").Protect "test"
End Sub
Passe den Code an, indem Du die Namen der Tabelle und das Passwort änderst.
Teste den Button, um sicherzustellen, dass das Makro in die geschützte Zelle schreiben kann.
Fehler: "Das Blatt ist geschützt."
Fehler: "Fehler beim Ausführen des Makros."
Falls Du keine Buttons verwenden möchtest, kannst Du auch ein Makro direkt ausführen, um geschützte Zellen zu bearbeiten. Hier ist ein einfaches Beispiel:
Sub SchreibeInGeschuetzteZelle()
Sheets("Tabelle1").Unprotect "test"
Sheets("Tabelle1").Range("A1").Value = "Neuer Wert" ' Zelle anpassen
Sheets("Tabelle1").Protect "test"
End Sub
Du kannst dieses Makro über das Menü Entwicklertools
oder durch ALT + F8
ausführen.
Angenommen, Du möchtest in die Zelle A1 einer geschützten Tabelle schreiben:
Makro erstellen:
Private Sub CommandButton1_Click()
Sheets("Tabelle1").Unprotect "test"
Sheets("Tabelle1").Range("A1").Value = "Hello World"
Sheets("Tabelle1").Protect "test"
End Sub
Zelle A1 wird bei Button-Klick aktualisiert.
Verwende Variablen: Du kannst die Tabellennamen und Passwörter in Variablen speichern, um den Code flexibler zu gestalten.
Dim ws As Worksheet
Dim pw As String
Set ws = Sheets("Tabelle1")
pw = "test"
ws.Unprotect pw
ws.Range("A1").Value = "Neuer Wert"
ws.Protect pw
Fehlerbehandlung einbauen: Verwende On Error Resume Next
und On Error GoTo 0
, um Fehler besser zu handhaben.
1. Kann ich mehrere Zellen gleichzeitig aktualisieren?
Ja, Du kannst eine Range angeben, z. B. Sheets("Tabelle1").Range("A1:B2").Value = "Neuer Wert"
.
2. Was passiert, wenn das Passwort falsch ist? Das Makro wird einen Fehler auslösen. Stelle sicher, dass das Passwort korrekt ist, bevor Du versuchst, die Zellen zu entsperren.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen