Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
424to428
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anpassung Code bzgl Blattschutz

Anpassung Code bzgl Blattschutz
Torsten
Hallo beisammen,
mit dem folgenden Code wird dem WS "ÜBERSICHT" beim Öffnen der Datei ein Blattschutz vergeben und trotzdem kann die Gliederungsfunktion in dem WS verwendet werden:

Private Sub Workbook_Open()
With Worksheets("ÜBERSICHT")
.Protect password:="PW", UserInterfaceOnly:=True
.EnableOutlining = True
End With
End Sub

Nun möchte ich aber, daß beim Öffnen der Datei abgefragt wird, ob der Blattschutz "PW" gesetzt ist (Der Blattschutz soll nun manuell und nicht automatisch beim Öffnen der Datei gesetzt werden). Wenn ja, dann sollen die Funktionen UserInterfaceOnly und EnableOutlining hinzugefügt werden. Offensichtlich habe ich aber (hoffentlich nur im Augenblick :-) ) ein Brett vor'm Kopf und krieg das nicht hin. Könnt Ihr mir helfen?
Vielen Dank vorab.
Gruß
Torsten

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Anpassung Code bzgl Blattschutz
K.Rola
Hallo,
du hast leider nicht erwähnt, ob das Blatt, falls geschütz, immer mit dem
selben Passwort geschützt wird, ich geh mal davon aus.

Private Sub Workbook_Open()
With Worksheets("ÜBERSICHT")
if .Protectcontents Then
.unprotect password:="PW"
.Protect password:="PW", UserInterfaceOnly:=True
.EnableOutlining = True
end if
End With
K.Rola
End Sub

AW: Anpassung Code bzgl Blattschutz
Torsten
Hallo K.Rola,
vielen Dank für Deine Rückmeldung.
Ich versteh' zwar nicht genau warum das funktioniert, aber es funktioniert! :-)
Mir ist nicht ganz klar, was
if .Protectcontents Then
.unprotect password:="PW"
.Protect password:="PW",
genau macht. Mit meinen bescheidenen VBA-Kentnissen würde ich zunächst sagen, das sich das beißt: Zunächst .unprotect um im nächsten Schritt .protect zu setzen? Kannst Du noch ein bißchen Licht in mein Dunkel zu bringen?
Gruß
Torsten
Anzeige
AW: Anpassung Code bzgl Blattschutz
K.Rola
Hallo,
hast du schon richtig erkannt. Falls das Blatt geschützt ist, wird der
Schutz zunächst aufgehoben, da ja nicht bekannt ist, mit welchen
Optionen der Schutz ggf. gesetzt wurde.
Danach wird erneut, nun mit den entsprechenden Optionen, geschützt.
Gruß K.Rola
AW: Anpassung Code bzgl Blattschutz
Torsten
Hallo K.Rola,
nett von Dir, daß Du mir ein bißchen "Nachhilfe" gibst. :-)
Allerdings habe ich folgendes trotzdem noch nicht verstanden:
Wenn die Datei geöffnet wird, ohne daß ein Password vorher vergeben wurde, wird trotz des Codes kein Password vergeben. Andersherum, wenn ein Password vergeben wurde, wird dies beibehalten. Alles wie gewünscht! Wie aber funktioniert das denn? An Hand Deines Codes kann ich das nicht nachvollziehen (siehe mein vorhergehendes Mail)und ich würde es gerne verstehen.
Ich hoffe, ich nerve jetzt nicht. Für Deine Geduld im voraus besten Dank.
Gruß
Torsten
Gruß
Torsten
Anzeige
AW: Anpassung Code bzgl Blattschutz
K.Rola
Hallo,
wenn das Blatt nicht geschützt ist, wird es mit dem Passwot "PW" und den
angegebenen Optionen geschütz.
Wenn das Blatt geschützt ist und kein Passwort hat oder das Passwort "PW", wird der Schutz aufgehoben, sonst nicht!
Gruß K.Rola
AW: Anpassung Code bzgl Blattschutz
05.05.2004 18:03:08
Torsten
Nochmals Hallo!
Halte mich bitte nicht für einen Korinthenkacker, aber ich möchte nicht, daß Du mich für blöd hälst und bei meiner nächsten Frage im Forum denkst, na klasse, schon wieder Torsten K..:-)
Du schreibst "wenn das Blatt nicht geschützt ist, wird es mit dem Passwot "PW" und den
angegebenen Optionen geschütz.". Und das stimmt nicht. Ich habe diese Datei zum Server hochgeladen, und zwar ungeschützt. Wenn Du sie nun öffnest, wird das WS "ÜBERSICHT" nicht geschützt. Wenn Du sie schützt, speicherst und schließt und dann wieder öffnest, ist das WS "ÜBERSICHT" geschützt. Nochmal: Das ist genau das was ich brauchte.
Ich verstand und verstehe eben nicht, wie der Code funktioniert und das wäre mir als VBA-Einsteiger halt wichtig.
https://www.herber.de/bbs/user/6055.xls
Nochmals vielen Dank für Deine Geduld.
Gruß
Torsten
Anzeige
Ich misch mich mal ein ;-)
Martin
Hallo Torsten,

Private Sub Workbook_Open()
With Worksheets("ÜBERSICHT")
if .Protectcontents Then
.unprotect password:="PW"
.Protect password:="PW", UserInterfaceOnly:=True
.EnableOutlining = True
end if
End With
End Sub

Die Zeile
if .Protectcontents Then
prüft, ob die Tabelle ÜBERSICHT geschützt ist. Wenn nein, ist der Wahrheitswert der Aussage = falsch, d.h. die IF-Bedingung ist nicht erfüllt und alles was zwischen IF und END IF steht wird nicht ausgeführt. M.a.W. die Tabelle bleibt ungeschützt.
Wenn die Tabelle geschützt ist, wird der Schutz mit der Zeile
.unprotect password:="PW"
komplett aufgehoben. Und die nächsten beiden Zeilen setzen den Schutz dann so, wie Du ihn haben wolltest.
Gruß
Martin Beck
Anzeige
AW: Ich misch mich mal ein ;-)
Torsten
Hallo Martin,
vielen Dank für's Einmischen!
Das, was If .Protectcontents genau macht, fehlte mir zum Verständnis.
Jetzt kann ich das nachvolziehen. Und verstehe nicht, warum das so lange gedauert hat, mit meinem Verständnis! :-))
Viele Grüße
Torsten
Noch ein Tip
Martin
Hallo Torsten,
wenn ich die Bedeutung eines Begriffes in VBA nicht kenne, kopiere ich ihn in ein Modul, markiere den Begriff und drücke F1. Dann erscheint die Online-Hilfe hierzu und die ist meistens ganz gut.
Gruß
Martin Beck
AW: Noch ein Tip
Torsten
Hallo Martin,
das kenn' ich und hatte es probiert - ohne Erfolg.
Wenn ich's recht überlege, hatte ich aber wohl den Punkt vor dem Begriff mitkopiert.
Wahrscheinlich hat's deshalb nicht funktioniert. Da ich zur Zeit aber ziemlich viel Arbeit im Büro hab', bin ich nicht zum weiterprobieren gekommen.
Trotzdem schönen Dank nochmal für's Einmischen.
Gruß
Torsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige