Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Paßwort nur an einer Stelle | Herbers Excel-Forum


Betrifft: Paßwort nur an einer Stelle von: S.Andrick
Geschrieben am: 15.12.2009 11:34:08

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


  

Betrifft: AW: Paßwort nur an einer Stelle von: Uduuh
Geschrieben am: 15.12.2009 12:05:40

Hallo,
in einem allg. Modul:
Public strPW As String

in DieseArbeitsmappe:

Private Sub Workbook_Open()
  strPW = Chr(65) + Chr(65) + Chr(65) + Chr(65) + Chr(65)
End Sub

Und dann setzt du überall, wo das PW erforderlich ist, strPW ein.

Gruß aus’m Pott
Udo



Beiträge aus den Excel-Beispielen zum Thema "Paßwort nur an einer Stelle"