meine Frage ist eigentlich Simpel. Habe bereits im Internet nachgelesen, jedoch keine klare Antwort rauslesen können.
Ist es möglich mit einmal Passwort eingeben mehrere Tabellenblätter (z.B. bei 8 Tabellenblätter in einer Arbeitsmappe, Tabellenblatt 2-7) mit einem Passwortschutz zu versehen und diese dann auch mit einmal eingeben wieder aufzuheben?
du könntest versuchen, das mit dem "Schutz" der gesamten Arbeitsmappe zu lösen. Wobei man sich unter Schutz nichts sicheres vorstellen darf, das kann man in ein paar Sekunden aushebeln.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Also die gesamt Arbeitsmappe zu Schützen kommt nicht in Frage. Derjenige der die Datei bekommt, soll in den Tabellen bestimmte Zeilen und Spalten nicht verändern können. Deswegen Schütze ich jeweils nur bestimmte Berieche in einer Tabelle. Das man es in ein paar Sekunden aushebeln kann stellt auch kein Problem dar.
Wenn Sie mir genau erklären können wie das mit VBA geht, dann kommt das natürlich auch in Frage :19:
For Each wks In ThisWorkbook.Worksheets If InStr(1, "Sheet1Sheet2Sheet3Sheet4....", wks.Name) Then 'In den Anführungszeichen trägst Du die Namen Deiner Sheets ein wks.Protect "DeinPasswort" End If Next wks End Sub
Sub unprotectSheets() Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets If InStr(1, "Sheet1Sheet2Sheet3Sheet4....", wks.Name) Then 'In den Anführungszeichen trägst Du die Namen Deiner Sheets ein wks.Unprotect "DeinPasswort" End If Next wks End Sub
Du solltest allerdings besser den CodeName, statt Name verwenden. Dazu kannst Du im Internet einiges lesen.
Ich hatte gehofft, dass du mir das etwas genauer erklären kannst :19: Ich hab jetzt meine Datei mit Makros gespeichert. Dann gehe ich auf Entwicklertools und dann auf Visual Basic. Dann habe ich "Diese Arbeitsmappe" angeklickt. Dann den Code reinkopiert. Soll ich bei den Namen zwischen den Anführungszeichen eine Leerzeile lassen? oder das mit einem Komma trennen? oder jedes einzelne Blatt mit Anführungszeichen versehen? Also du siehst schon, dass ich eine etwas genauere Erklärung brauche :19: wo finde ich die Codenamen?
09.01.2018, 14:00 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2018, 14:01 von Rabe.)
Hi,
(08.01.2018, 16:41)Portgas D. Ace schrieb: Soll ich bei den Namen zwischen den Anführungszeichen eine Leerzeile lassen? oder das mit einem Komma trennen? oder jedes einzelne Blatt mit Anführungszeichen versehen?
also für mich ist diese Zeile eindeutig:
Zitat:If InStr(1, "Sheet1Sheet2Sheet3Sheet4....", wks.Name) Then 'In den Anführungszeichen trägst Du die Namen Deiner Sheets ein
einfach die Namen ohne Leer-, oder sonstiges Trennzeichen hintereinanderschreiben zwischen die "".
Habe das jetzt versucht ohne eine Leerzeile oder andere Trennzeichen zu benutzen, jedoch klappt das irgendwie nicht.
Ich lade mal eine Beispieldatei hoch, und wenn einer so nett ist kann er ja mal den Code so reinkopieren wie es sein soll und wieder hochladen. Würde dann gerne sehen, ob das so klappt wie ich mir das vorstelle. Die Tabellenblätter Stunden, Tage und Anzahl sollten hierbei bei einmal eingeben geschützt werden und wieder mit einmal eingeben wieder aufgehoben werden.
Hi Also in deiner Datei war noch nirgendwo Code enthalten. Ich hab dann mal ein Modul eingefügt, Sperren_Entsperren genannt, Code reinkopiert, die Namen der gewünschten Tabellenblätter eingefügt und für die zwei Sub jeweils einen Shortcut angelegt. Strg+Shift+P für Protect und Strg+Shift+U für Unprotect
Taugt dir das so ?
Gruss Igel
Ich kann nicht alles wissen, aber vieles lernen !
Folgende(r) 1 Nutzer sagt Danke an Igelbauer für diesen Beitrag:1 Nutzer sagt Danke an Igelbauer für diesen Beitrag 28 • Portgas D. Ace