Paßwort nur an einer Stelle
S.Andrick
Hallo ich,
habe folgendes Problem:
Um bei einer Excel-Datei in einem Schwung alle Blätter zu schützen oder den Blattschutz auf zu heben, hat mir mal jemand ein VBA-Code geschrieben (leider weiß ich nicht mehr wer, steht auch nix im VBA-Code).
Hierbei kann ich über ein Sondermenü die Funktionen ansteuern.
der Code für Schutz aufheben sieht wie folgt aus:
----------------------------------------------------------------------------------------------------------------------
Sub SchutzAufheben()
Dim DieseMappe, BlattZahl, Datum As String
Dim I As Integer
DieseMappe = Chr(65) + Chr(65) + Chr(65) + Chr(65) + Chr(65)
Datum = Chr(80) + Chr(97) + Chr(115) + Chr(115) + Chr(119) + Chr(111) + Chr(114) + Chr(116)
BlattZahl = InputBox("Bitte geben Sie das gültige " & Datum & " ein")
If BlattZahl <> DieseMappe Then
MsgBox ("falsches " & Datum)
Exit Sub
End If
Application.ScreenUpdating = False ' Bildschirmaktualisierung aus
For I = 1 To Worksheets.Count
Sheets(I).Unprotect BlattZahl
Next I
Application.ScreenUpdating = True ' Bildschirmaktualisierung ein
MsgBox "Alle Blätter zur Bearbeitung jetzt frei"
End Sub
----------------------------------------------------------------------------------------------------------------------
Ein bischen tricki (ist auch ik so). Damit das Wort "Passwort" nicht geschrieben wird wird dies mit Umweg über "Datum" und ASCI-Code gemacht. Das eigendliche Passwort ist hinter "DieseMappe" mit ASCI-Code verschlüsselt (in diesem Fall "aaaaa" :-) ).
Mittlerweile ist die Excel-Datei gewachsen und weitere Funktionen dazu gekommen (VBA-Code habe ich teilweise geändert und teilweise aus Foren). Ich benötige bei folgenden Funktionen eine Passwortabfrage:
- alle Blätter schützen (über Sondermenü)
- Blattschutz bei allen Blätter aufheben (über Sondermenü)
- beim speichern alle Blätter schützen
(ohne Rückingo über Messeg-Box)
- beim schließen der Excel-Datei alle Blätter schützen
(ohne Rückingo über Messeg-Box)
- Abfrage ob Makros aktiv, sonst wird Datei nicht ausgeführt
Dass heißt, dass Passwort ist mittlerweile ca. 10x in dem ganzen Code eingebunden, mal über die tolle ASCI-Verschlüssellung, mal über
ActiveWorkbook.Unprotect ("aaaaa")
ActiveWorkbook.Protect ("aaaaa")
Und jetzt das Problem:
Wenn ich das Passwort ändern sollte, muß ich den gesamten Code durcharbeiten und an alle 10 Stellen ändern (in der Hoffnung, keinen übersehen zu haben).
Ich möchte nur an einer Stelle im VBA-Code das Passwort hinterlegen, nach Möglichkeit auch über die ASCI-Verschlüsselung.
An den anderen 9 Stellen möchte ich einen Bezug auf diese eine Passwort herstellen.
Geht das? Wenn ja wie?
Über eine Hilfe wäre ich dankbar.
Gruß
S.Andrick