Excel: zusätzliche Zellen durch Marko schützen
Hallo,
ich kämpfe mit einem Excel-Problem zu dem ich schon über eine Stunde in den Onlineforen suche, aber leider noch nicht so recht fündig geworden bin.
Zur Sachlage: Ich habe eine Excel-Datei, in welcher bereits auf diversen Spalten und Zellen ein Schutz hinterlegt ist. Zellschutz und Blattschutz mit Passwort sind aktiviert! So weit so gut.
Die Excel-Tabelle wird bei uns unter Lotus Notes verwendet und ist dort in diverse Vorgänge integriert. In den Vorgängen kann ich in Notes bereits beim Öffnen der Datei bestimmte Makros ansprechen. Nun benötige ich den passenden VBA-Code um WEITERE Zellen zu sperren. Hintergrund: Im Notes gibt es je nach Zugriffsrechten für die Nutzer diverse Optionen. Eine beinhaltet einen erweiterten Schutz der Datei. Es sollen zusätzliche Felder geschützt werden.
Wie kann ich per Makro WEITERE Zellen in der Excel-Datei schützen? Das Ganze unter Beachtung des Blattschutzes inkl. Passwort. In einem zweiten Makro soll der Schutz eben für diese zusätzlichen Zellen (z.B. B10, C 20 : D30, ...) wieder entfernt werden, nicht aber für die grundlegend bereits geschützten Zellen. Das Anstoßen des Markos soll nicht automatisch bei Start erfolgen, sondern in Abhängigkeit dessen, was in Notes hinterlegt ist (wie gesagt, schon vorhanden). Mir fehlt also ausschließlich der VBA-Code zum Sperren zusätzlicher Felder. Zudem soll der VBA-Code nicht fr die Nutzer zu sehen sein (Sollte mit dem Blattschutz doch funktionieren, oder?)
Leider bin ich in VBA nicht sonderlich bewandert, ich hoffe ihr könnt mir zeitnah helfen.
Vielen Dank schon einmal.
Viele Grüße aus Dresden,
Sandra
Antwort schreiben
Antwort 1 von Beverly vom 30.12.2020, 09:33 Options
Hi Sandra,
nach diesem Prinzip:
Sub zellen_schuetzen()
Dim raBereich As Range
Dim wsTabelle As Worksheet
Set wsTabelle = Worksheets("Tabelle1")
Set raBereich = Union(wsTabelle.Range("B10"), wsTabelle.Range("C20:C30"), wsTabelle.Range("E23"), wsTabelle.Range("F13:F15"))
wsTabelle.Unprotect "Passwort"
raBereich.Locked = True
wsTabelle.Protect "Passwort"
Set wsTabelle = Nothing
Set raBereich = Nothing
End Sub
Damit der Code nicht zu sehen ist, musst du zusätzlich zum Blattschutz das VBA-Projekt mit einem Passwort schützen. Beachte aber, dass in VBA nichts wirklich sicher ist, denn es gibt an jeder Ecke im Internet Knackprogramme.
Bis später,
Karin