Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Passworteingabe per Makro

Forumthread: Passworteingabe per Makro

Passworteingabe per Makro
04.09.2003 21:04:40
Alex
Hallo zusammen.

Ich würde gern ein Excelsheet per Makro entsperren.
Dazu dazugehörige Passwort wird als String eingelesen und dann im makro verwendet... das ganze sieht ungefähr so aus :

dim pass as string

i=0
do until (i=3)
pass = inputbox("passwort eingeben")
activesheet.unprotect password:=pass
if (activesheet.protectcontents = true) then
goto ende
else
i=i+1
loop

ende:
... weiter mit ursprünglichem makro

Nun produziert Excel aber den Laufzeitfehler 1004 falls das Passwort nicht passt,dieser soll abgefangen werden.

Wie geht das?

Vielen Dank für die Hilfe,
Gruß Alex.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Passworteingabe per Makro
04.09.2003 21:07:24
alex
Ahso ... mit der On Error goto blubb hab ich'S schon probiert.
Damit kann ich den Fehler genau 1-mal abfangen. - Leider...
AW: Passworteingabe per Makro
05.09.2003 07:15:25
WernerB.
Hallo Alex,

wie gefällt Dir das:

Sub PwdEingabe()
Dim pass As String
Dim i As Byte
For i = 1 To 3
pass = InputBox("Passwort eingeben")
On Error Resume Next
ActiveSheet.Unprotect password:=pass
On Error GoTo 0
If (ActiveSheet.ProtectContents = False) Then
Exit For
Else
MsgBox i & ". Versuch von 3 möglichen Versuchen:" _
& vbCr & vbCr & "Das eingegebene Passwort war falsch !", _
0, "Dezenter Hinweis für " & Application.UserName & ":"
If i = 3 Then Exit Sub
End If
Next i
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller (siehe dazu Forums-FAQ)!
Anzeige
;
Anzeige

Infobox / Tutorial

Passworteingabe per Makro in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel-Sheet per Makro mit einer Passworteingabe zu entsperren, kannst du folgenden VBA-Code verwenden:

Sub PwdEingabe()
    Dim pass As String
    Dim i As Byte
    For i = 1 To 3
        pass = InputBox("Passwort eingeben")
        On Error Resume Next
        ActiveSheet.Unprotect password:=pass
        On Error GoTo 0
        If (ActiveSheet.ProtectContents = False) Then
            Exit For
        Else
            MsgBox i & ". Versuch von 3 möglichen Versuchen:" _
            & vbCr & vbCr & "Das eingegebene Passwort war falsch !", _
            0, "Dezenter Hinweis für " & Application.UserName & ":"
            If i = 3 Then Exit Sub
        End If
    Next i
End Sub

Dieser Code fragt den Benutzer bis zu drei Mal nach dem Passwort. Bei jedem falschen Versuch wird eine entsprechende Nachricht angezeigt. Die Verwendung von On Error Resume Next ermöglicht es, Laufzeitfehler zu vermeiden, wenn das Passwort nicht korrekt ist.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn das eingegebene Passwort falsch ist. Stelle sicher, dass du den Fehler mit On Error Resume Next abfängst, wie im obigen Beispiel gezeigt.

  2. Makro lässt sich nicht ausführen: Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu den Excel-Optionen und aktiviere die Makros.


Alternative Methoden

Falls du eine andere Methode zur Passworteingabe in Excel verwenden möchtest, kannst du auch ein benutzerdefiniertes Formular (UserForm) erstellen. Damit kannst du das Passwort in einer besseren Benutzeroberfläche abfragen, anstatt nur mit einer InputBox zu arbeiten.

Um ein UserForm zu erstellen:

  1. Gehe in den Visual Basic for Applications (VBA) Editor.
  2. Klicke auf "Einfügen" und wähle "UserForm".
  3. Füge ein Textfeld für die Passworteingabe und einen Button zum Bestätigen hinzu.
  4. Im Button-Click-Event kannst du dann den Entsperr-Code einfügen.

Praktische Beispiele

Hier ist ein Beispiel, wie die PwdEingabe-Subroutine angewendet werden kann:

Sub Beispiel()
    ' Vor dem Ausführen sicherstellen, dass das Blatt geschützt ist.
    PwdEingabe()
    ' Weitere Aktionen nach erfolgreicher Entsperrung...
End Sub

In diesem Beispiel wird die Passworteingabe aufgerufen, bevor du mit weiteren Operationen auf dem Arbeitsblatt fortfährst.


Tipps für Profis

  • Passwort speichern: Verwende eine verschlüsselte Methode, um Passwörter zu speichern, falls du sie im Code verwenden musst.
  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung, um festzuhalten, wie oft und mit welchen Passwörtern versucht wurde, das Blatt zu entsperren.
  • Benutzerfreundlichkeit: Stelle sicher, dass die Fehlermeldungen klar und ansprechend sind, um Benutzern zu helfen, die Eingabe zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich das Passwort im VBA-Code sicher speichern?
Es wird empfohlen, Passwörter nicht im Code zu speichern. Nutze stattdessen Umgebungsvariablen oder sichere Datenbanken.

2. Was passiert, wenn ich die maximale Anzahl an Versuchen überschreite?
Wenn die maximale Anzahl an Versuchen erreicht wird, wird das Makro beendet, und das Arbeitsblatt bleibt geschützt.

3. Kann ich die Eingabe des Passworts anpassen?
Ja, du kannst die InputBox anpassen oder ein UserForm verwenden, um die Eingabe benutzerfreundlicher zu gestalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige