Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA Marko Passwort für alle Seiten ein/aus

Forumthread: VBA Marko Passwort für alle Seiten ein/aus

VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 15:19:27
Florian
Hallo an die Profis,

erst mal vielen Dank für die ganze Hilfe, die ich hier bereits erhalten haben.

Ich habe nun ein neues Problem und fürchte fast das es nicht lösbar ist.

Ich habe eine Excel Tabelle mit mehreren Seiten, die mit demselben Blattschutz gesperrt sind.

Diese konnte ich mit dem Makro und Tastenkombination zum Aufrufen schnell und einfach entsperren.

Seit diesem Jahr haben wir eine Änderung, sodass auf 2 von den 15 Blättern ein anderer Mitarbeiter zugreifen soll, um Änderungen vorzunehmen (Urlaubsdaten).
Dieser hat natürlich, nicht das Hauptpasswort für den Blattschutz aller Blätter, sondern ein eigenes, was auf den 2 anderen liegt.

Meine Frage jetzt gibt es weiterhin die Möglichkeit, alle Blätter auf einmal zu entsperren?
Oder Blatt 1-10 mit Passwort xxxx auf einmal und dann Blatt 11-12 auf einmal mit Passwort yyyy?

Das Gleiche gilt für das Sperren der Karten, dies kann ich bisher auch mit einem Makro und Tastenkombination zeitgleich ausführen.

Momentan führe ich das ganze so aus, um wenigstens etwas Zeit zu sparen:

Excel Datei öffnen, die beiden Blätter entsperren, die das andere Passwort haben, dann mit dem Shortcut den Rest entsperren, Änderungen vornehmen, alle Blätter mit Passwort xxxx sperren, dann die beiden anderen Blätter wieder mit xxxx entsperren und mit yyyy sperren.

Leider eine sehr Zeitaufwendige Prozedur.

Vielleicht habt ihr einen Einfall/Idee zur Lösung.

Vielen Dank schon einmal vorab

Florian
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: pro Seite speichern
20.02.2025 15:32:39
Fennek
Hallo,

einer von vielen möglichen Vroschlägen:

Speichere das Password pro Sheet in die Properties, dann kann ein Code alle Sheets ent-sperren.

mfg
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 15:34:24
Yal
Hallo Florian,

nicht "auf einmal", aber trotzdem "in einem Zug":

Public Sub Blätter_entsperren()

Dim i As Integer

For i = 1 To 10
ThisWorkbook.Worksheets(i).Unprotect Password:="xxxx"
Next
For i = 11 To 12
ThisWorkbook.Worksheets(i).Unprotect Password:="yyyy"
Next
End Sub


In Excel kannst Du bei "Makros" (Alt+F8), "Optionen..." kannst Du eine Tastenkombination zuweisen: Strg+p / Shift+Strg+p (= Strg+P)

VG
Yal
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 23:14:26
Piet
Hallo Kollegen

nur aus Spass, zum Knobeln, eine Frage an euch - wie sicher wäre eine xla oder xlam Datei??
Die kann man per Button öffnen, sieht aber KEINE Makros. Die auslesen müsste man schon Profi sein!
Wie hoch schätzt ihr hier die Sicherheitssturfe ein?? -- Mal von echten Profis abgesehen.

mfg Piet
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
21.02.2025 01:37:35
Uduuh
Hallo,
ich würde das über den Windows-Login [Environ("Username")] steuern.

Gruß aus'm Pott
Udo
xla/xlam
21.02.2025 00:10:59
Uduuh
Hallo,
Addins sind auch nur Workbooks. Ohne Projektschutz kannst du dir die Codes einfach im VBE ansehen.
Hinsichtlich der Sicherheit gilt die generelle Regel: In Excel ist nichts sicher

Gruß aus'm Pott
Udo
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 15:47:18
Florian
Das hört sich gut an :-)

Kann ich das in gleicher Form auch wieder sperren?

Bisher sieht das Modul bei mir so aus:

Sub Blattschutz_Alle_Ein()
Application.ScreenUpdating = False
Dim Blatt As Worksheet
For Each Blatt In Worksheets
Blatt.Protect Password:="0258"
Next Blatt
Application.ScreenUpdating = True
End Sub
Sub Blattschutz_Alle_Aus()
Dim Passwort As String
Passwort = Application.InputBox(prompt:="Passwort", Type:=2)

If Passwort > "0258" Then Exit Sub
Application.ScreenUpdating = False
Dim Blatt As Worksheet
For Each Blatt In Worksheets
Blatt.Unprotect Password:="4711"
Next Blatt
Application.ScreenUpdating = True
End Sub

Nur das jetzt Tabelle2 und Tabelle16 als Password: 0147 haben.
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 16:03:02
Der Steuerfuzzi
Hallo,

Dir muss allerdings dabei klar sein, dass der Blattschutz kein richtiger Schutz ist und ganz leicht ausgehebelt werden kann. Noch leichter ist es, wenn Du das Passwort im Code stehen hast, denn der ist es für jeden relativ einfach einsehbar.

Grüße
Michael

AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 16:25:53
Florian
Ja, das ist mir bewusst.

Aber die mit der Tabelle arbeiten haben das Wort VBL oder Marko noch nie gehört, von daher ist ein Blattschutz das höchste der Gefühle.
Ich denke, für unsere Zwecke reicht es aus.

Das VBA Projekt habe ich auch mit einem Passwort geschützt, sodass keiner einfach so in den Code gucken kann.

Ich muss aber gestehen, dass ich selber nicht sehr viel Ahnung von VBL habe und mir das alles mühsam ergoogelt oder über YouTube oder Forumshilfe gebastelt habe.

Daher entschuldigt, wenn das, was ich mache, nicht immer sinnvoll oder perfekt ist.
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 18:11:28
Der Steuerfuzzi
Wenn der Schutz keinen hohen Anspruch haben muss ist es ok. Aber man muss halt immer mit Leuten rechnen, die aus der Reihe tanzen und z. B. Formeln etc. ändern möchten.

Das VBA Projekt habe ich auch mit einem Passwort geschützt, sodass keiner einfach so in den Code gucken kann.
Das hilft leider gar nichts ... mit dem richtigen Programm kann man sich die Makros, ob geschützt oder nicht ansehen. Man kann aber auch den Schutz relativ einfach beseitigen.
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 16:12:29
Yal
Hallo Florian,

bist Du sicher, dass Du genau weisst, was Du haben willst?

Wenn Du ein Bischen Flexibilität in das Entsperren, kannst Du ein Fehlertoleranz einbauen, was dich erlaubt, mehrere Password zu testen:

Sub Blaetter_entsperren()

Dim i
For i = 1 To Worksheets.Count
Einzel_entsperren Worksheets(i), "1234", "2345"
Next
End Sub

Private Sub Einzel_entsperren(Blatt As Worksheet, ParamArray PW())
Dim P
On Error Resume Next
For Each P In PW
Blatt.Unprotect PW
Next
End Sub


In wie weit es sinnvoll ist, verschiedene Passworter pro Blatt zu haben, musst Du einschätzen.

VG
Yal
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 17:32:38
Piet
Hallo

bitte lade mal die kleine Beispieldatei hoch und öffne sie. --> Überrascht???
Ist das ein guter Lösungsvorschlag? Die Passwörter stehen im Label, der aber unsichtbar ist!!
Im VBA Editor siehst du die Passwörter, sie stehen als Label unter den TextBoxen 1+2.
Im Code kannst du diese Passwörter aus den TextBoxen 1+2 laden. Hilft dir das weiter?
https://www.herber.de/bbs/user/175898.xlsm

mfg Piet
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 16:52:09
Florian
Ah, nein, ich bin mir nicht sicher, ob wir uns richtig verstanden haben.

Sachverhalt ist der:
Ich habe verschiedene Excel Tabellen mit jeweils 16 Tabellenblättern

Variante 1 hat Blatt 1-16 mit demselben Blattschutz. Dort funktioniert alles wie gehabt.

Variante 2 Blatt 1, 3-15 haben 1x Passwort / Blatt 2 und 16 haben ein anderes Passwort, da derjenige, der den Blattschutz für die beiden Blätter aufheben darf, keine Veränderungen an die gesperrten Zellen der anderen Tabellenblätter haben soll.

Bei Variante 1 konnte ich mit str + () und str+() das Blatt schnell entsperren, indem ich einmal das Passwort eingegeben habe und wieder mit der anderen Tastenkombination alle wieder mit dem Blattschutz sperren.

Bei Variante 2 ist mir dann aufgefallen, dass immer eine Fehlermeldung kam, das erklärte sich dann durch die verschiedenen Passwörter.

Die Frage ist:
1.) ob es dafür eine Lösung gibt, mit der ich immer noch relativ schnell alle 16 Blätter entsperren kann, obwohl unterschiedlich Blattschutzpasswörter verwendet wurden.
2.) ob ich alle Blätter auf einmal wieder sperren kann, wobei bei Blatt 1 und 3-15 das eine und Blatt 2 und 16 das andere Password hinterlegt wird,

Ich hoffe, es wird so verständlicher, was ich brauche.

Sorry auch noch mal, ich bin ein ziemlicher VBA Anhänger und brauche oft was länger bis ich verstehe, was Ihr meint oder brauche noch Hilfe bei der Umsetzung.

Ansonsten mache ich halt alles weiter wie bisher. Geht auch, kostet halt nur Zeit.
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
20.02.2025 18:14:38
Yal
na dann.
Diese Lösung fragt nach einem Passwort für das Entsperren aber auch für das Sperren.
Wenn nur beim Entsperren gewollt, dann die Zeile
If Not PW_prüfen Then Exit Sub
vom "BlattSchutz" in "Blaetter_entsperren" versetzen.

Const PW_adm = "sehrkomplizierterpasswort"

Const PW1 = "abcd"
Const PW2 = "wxyz"

Public Sub Blaetter_sperren()
BlattSchutz bEin:=True
End Sub

Public Sub Blaetter_entsperren()
BlattSchutz bEin:=False
End Sub

Private Function PW_prüfen() As Boolean
PW_prüfen = Application.InputBox(prompt:="Passwort", Type:=2) = PW_adm
End Function

Private Sub BlattSchutz(Optional bEin As Boolean) 'bEin: Kurzform von boolean-Einschalten
Dim i
If Not PW_prüfen Then Exit Sub
For i = 1 To Worksheets.Count
Select Case i
Case 1, 3 To 15
If bEin Then Worksheets(i).Protect PW1 Else Worksheets(i).Unprotect PW1
Case 2, 16
If bEin Then Worksheets(i).Protect PW2 Else Worksheets(i).Unprotect PW2
End Select
Next
End Sub
VG
Yal
Anzeige
AW: VBA Marko Passwort für alle Seiten ein/aus
22.02.2025 11:31:02
Herbert Grom
Hallo Florian,

mach doch eine "For-Next"-Schleife, dann kannst du über den Blattindex sogar für jedes Sheet ein eigenes PW vergeben.

Servus

Forumthreads zu verwandten Themen

Anzeige