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

Forumthread: Tabellenschutz passwort in Makro auslesen

Tabellenschutz passwort in Makro auslesen
t.ebbinghaus
Hallo,
ich möchte das Passwort für den Schutz eines Arbeitsblattes in einem Makro auslesen und verwenden.
Hintergrund:
Bei einem Klick auf eine bestimmten Button werden nacheinander folgende Aktionen ausgelöst:
1. Es wird in einem Userfrom nach dem Tabellenpasswort gefragt
2. Mit dem Passwort wird die Tabelle entsperrt (ActiveSheet.Unprotect Password:=sPass)
3. Die Zeile mit der aktivierten Zelle wird markiert, der Hintergrund eingefärbt und alle Zellen gesperrt
4. Die Tabelle wird mit dem Passwort entsperrt (ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=sPass)
5. Der Inhalt der nunmehr geschützten, aktiven Zeile wird per SQL-Abfrage an einen Word-Serienbrief übergeben und zum Druck vorbereitet
Abgefangen wird über das Userform ein klick auf "Abbruch" bei der Passwortabfrage. Ich möchte nun zusätzlich die Eingabe eines falschen Passworts abfangen, ohne dass das Passwort im Makro hinterlegt ist. Gibt eins eine Funktion dafür?
Danke & Gruss
Thorsten
Anzeige
AW: Tabellenschutz passwort in Makro auslesen
13.07.2010 11:22:28
Nepumuk
Hallo,
du musst doch nur den Fehler abfangen der ausgelöst wird, wenn das Kennwort falsch ist.
Gruß
Nepumuk
P.S. Also entweder Kennwort oder Password, aber bitte kein denglisch.
@Nepumuk : Ist doch alles richtig geschrieben
13.07.2010 11:28:47
NoNet
Hallo Nepumuk,
Deinen Einwand verstehe hier nicht :
P.S. Also entweder Kennwort oder Password, aber bitte kein denglisch.
Thorsten hat in seinem Beitrag durchweg die deutsche Schreibweise Passwort verwendet - ausser in den Argumenten der VBA-Anweisungen, die selbstverständlich die englische Schreibweise erfordern.
Gruß, NoNet
Anzeige
Passwort auslesen - Soll das ein Witz sein ?
13.07.2010 11:24:30
NoNet
Hallo Thorsten,
glaubst Du wirklich, es gibt einfach mal so eine Möglichkeit, das Passwort für den Blattschutz auszulesen ? - Welchen Sinn hätte da ein Schutz ?
Ich nehme an, Du suchst die fiktive Eigenschaft .Password :
sPass = ActiveSheet.Protection.Password
Du kannst dazu ja mal einen Ergänzungswunsch an MS schreiben...*LOOL*
Mal im Ernst : Du kannst allenfalls versuchen, den Blattschutz mit dem eingegebenen Passwort aufzuheben und im Falle eines Fehlers (Fehler 1004) darauf reagieren :
    On Error Resume Next
Err.Clear
ActiveSheet.Unprotect sPass
If Err.Number = 1004 Then
MsgBox "Falsches Passwort !"
Else
'Sonstiger Code bei korrektem Passwort
End If
Gruß, NoNet
Anzeige
OT
13.07.2010 11:33:29
Nepumuk
Hallo NoNet,
du auch Dengländer?
Um diese Nachricht zu lesen muss, nachdem sie gedowloaded wurde kein Passwort eingegeben werden, der Bildschirm wird automatisch geupdated. ;-)
Schöne Grüße aus KĀ-DINGIR-RA
Nepumuk
OT: Neee - bin absolut dagegen
13.07.2010 12:07:39
NoNet
Hey Nepumuk,
ich habe zwar nichts gegen "Multi-Kulti" in der Gesellschaft (schon gar nicht nach der tollen WM ;-), aber ich bin absolut gegen "Multi-Kulti" in der Sprache (sowohl "Hey voll krass Alder" und "Gehst Du Bahnhof ?" wie auch "Facility Manager" oder "Sales Manager" - auch wenn ich damit leider täglich konfrontiert werde...). Leider kommt man gerade in einem IT-JOB (oder besser : EDV-Beruf ;-) nicht um einige Anglizismen vorbei, wann immer es aber gleichbedeutende und sprachlich akzeptable deutsche Entsprechungen gibt, sollte man diese m.E. auch verwenden (allerdings ohne sich sprachlich zu verbiegen und vermeintlich englischsprachige Wörter wie "Handy" nicht durch "Taschentelefon" ersetzen ;-).
Daher ist Passwort in einem deutschsprachigen Kontext auch richtig - im Gegensatz zu Password. Dass man Passwort nun unbedingt durch das "rein deutsche" Kennwort ersetzt, halte ich nicht unbedingt für notwendig, denn das Passwort hat sich wie auch der PC (niemand sagt "PR" für "Persönlichen Rechner" ;-) oder PIN in den deutschen Sprachgebrauch eingebürgert (sogar in den Duden hat es das Passwort geschafft : http://www.duden.de/suche/index.php?suchwort=Passwort&suchbereich=mixed#inhalte ).
Gruß, NoNet
PS: KĀ-DINGIR-RA kannte ich noch nicht - werde ich mir merken ;-)
Anzeige
Kennwort kann, aber muss nicht, dasselbe...
13.07.2010 18:56:00
Luc:-?
…wie Passwort sein, Leute;
hinter den unterschiedlichen Worten steckt nur eine leicht unterschiedl (Sprach-)Logik. Während es bei Kennwort um das (Wieder-)Erkennen geht, geht es bei Passwort eher um die (Passage-)Erlaubnis (weniger um das Passen, denn das wäre ja nicht englisch!), allerdings haben Pass und Passage rein linguistisch wohl eher nichts miteinander zu tun, denn Passport i.d.S. stammt aus dem Mongolischen und bezeichnete zu Zeiten der Kagane die Reiseerlaubnis durch ein bestimmtes Gebiet, ggf durch das ganze mongolische Großreich! Ein solcher Passierschein wurde unbedingt respektiert…
Gruß Luc :-?
Anzeige
AW: OT
13.07.2010 12:57:14
t.ebbinghaus
Hallo zusammen ...
@NoNet bezüglich dem Code
ja, das geht - warum in die Ferne schweifen, wenn das Gute liegt so nahe ...
@NoNet bezüglich
Zitat: "glaubst Du wirklich, es gibt einfach mal so eine Möglichkeit, das Passwort für den Blattschutz auszulesen ?"
Das ist eine rhetorische Frage, oder? Für mich stellt sich nur die Frage, ob die MS-Programmierung solch eine Funktion versehentlich (z.B. Testfunktion vergessen herauszucompielieren), aus Dummheit (höhö ... Höhlen-MS-Programmier hat tolle Funktion integriert höhöö... nun jagen Mamumt mit Steinbeil.... hö) oder absichtlich (z.B. auf Anordnung einer geheimen US Regierungsbehörde) eingebaut haben. Ich tippe auf Antwort Nr. 2, oder wie kommt man sonst auf die Idee, ganze Spiele und Videosequenzen in ohnehin schon aufgeblaseen und Speicher fressenden Applikationen zu verstecken?
Ausserdem liegt der Text irgendwo in der Datei herum. Die Frage ist daher nicht, ob sondern nur wie es auszulesen ist und ob es dafür eine sinnvolle Funktion ohne die Bekannte .xla Erweiterung gibt.
Zitat: "Welchen Sinn hätte da ein Schutz ?"
Nun, zugegeben, viel bleibt da nicht - aber wir stellen uns einen schlecht bezahlten aber genialen und daher gelangweilten Programmiers a-la Dilbert vor, der unter der Knechtschaft eines Stephen Balmer 16 Stunden am Tag in den Code-Minien von MS schuftet. Ob der über denn Sinn nachdenkt? ;-)
@NoNet bezüglich "denglisch"
Ich verstehe Deinen Standpunkt und bin sogar mit Dir einer Meinung - auch wenn es schwer fällt, bestimmte Anglizismen überhaupt noch als solche zu erkennen ("Passwort" statt "Kennwert). Aber: als ich noch als jugendlicher Umweltaktivist vor 25 Jahren vor den Pelzgeschäften gegen Robbenschlachten demonstriert habe, wurde mir damals von den "Oberaktivisten" eingeschäft, keine Lederschuhe bei solchen Aktionen zu tragen .... (war immer peinlich gefragt zu werden, auf welcher Pflanze Leder wächst ...)
Warum schreibe ich dass, lieber NoNet ... ? Ach ist ja auch egal.... ;-)
Vielen Dank
Thorsten
Anzeige
AW: Tabellenschutz passwort in Makro auslesen
13.07.2010 11:26:20
ChrisL
Hi Thorsten
Private Sub CommandButton1_Click()
Dim pw As String
On Error GoTo ErrorHandler
pw = TextBox1
ActiveSheet.Unprotect Password:=pw
Rows(ActiveCell.Row).Interior.ColorIndex = 6
ActiveSheet.Protect Password:=pw
Exit Sub
ErrorHandler:
If Err.Number = 1004 Then
MsgBox "Passwort falsch"
Else
MsgBox "anderer Fehler"
End If
End Sub
cu
Chris
Anzeige
AW: Tabellenschutz passwort in Makro auslesen
13.07.2010 11:36:03
Torsten
Ich habe mal das hier im Netz gefunden, vielleicht hilfts...
Sub pcwBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
Dim Kennwort As String
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
Kennwort = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) &  _
Chr(i5) & Chr(i6) & Chr(n)
ActiveSheet.Unprotect Kennwort
If ActiveSheet.ProtectContents = False Then
MsgBox "Fertig" & vbCr & "Das alternative Kennwort lautet:" & vbCr & Kennwort
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub

Anzeige
Deine Antwort sollte gelöscht werden!
13.07.2010 12:27:53
Martin
Hallo Torsten,
ich denke, dass hier im Forum keine Lösung zum Knacken eines Passwortschutzes hingehört. Wäre ich ein Admin, würde ich deine Anwort sofort löschen.
Anders gesagt: Gibst du mir mal bitte deine Anschrift und deinen WLAN-Schlüssel oder einen Tipp, wie ich deinen WLAN-Schlüssel knacken kann? Es ist ja nicht schlimm, wenn ich Passwort knacke.
Viele Grüße
Martin
Anzeige
..dann müsste man auch Google sperren..
13.07.2010 13:01:02
robert
Hi Martin,
ok, er hätte nicht den code senden sollen, aber bei google-suche
findet man einiges zum thema blattschutz ;-)
daher:ein hinweis-suche mal im google-hätte es auch getan.
gruß
robert
AW: Deine Antwort sollte gelöscht werden!
13.07.2010 13:04:14
t.ebbinghaus
Lieber Martin,
wenn ich eine Lösung zum Knacken eins Kennwortes gesucht hätte, so hätte ich diese Bereits gefunden. Ich denke ich habe hinreichend mein Problem geschildert um zu zeigen, dass es nicht um das Knacken eines Kennwortes geht. Vielmehr möchte ich vermeiden, dass ein Kennwort als Text im Quellcode steht und dennoch ein Vergleich per If-Abfrage möglich ist.
Vielen Dank wenn Du Dich beim nächsten mal um korrektes Verständnis des Problems bemühst.
Danke und einen Knack-Code brauche wirklich nicht - dies würde meinen Code nur unnötig verlangsamen. Das ging wird schliesslich im Büroalltag gebraucht.
Gruss
Thorsten
Anzeige
AW: Deine Antwort sollte gelöscht werden!
13.07.2010 13:41:32
Torsten
Ich habe deinen Ansatz nur überflogen und dachte Du könntest mit dem Code vielleicht was anfangen. Wenn nicht, werde ich mich bestimmt nicht dafür entschuldigen, dass ich Dir helfen wollte! (Wenn Du deinen Kaffee ohne Zucker magst und jemand Dir Zucker für deinen Kaffee anbietet, kackst Du den dann auch an, wie er Dir Zucker anbieten könne?)
Und was das knacken von Passwörtern angeht: Ich habe eine meiner eigenen Tabellen nicht mehr bearbeiten können und kam zum verrecken nicht mehr auf das PW. Daher habe ich damals Google bemüht und hatte nach 5min diese Codezeilen. Wenn jetzt jemand daher kommt und den Exceltabellenschutz mit einem WLAN PW vergleicht, macht er sich höchstens lächerlich...
Ausserdem, warum sollte ein solcher Code hier nicht hin gehören? Ich bin sicher nicht der einzige, der mal ein PW vergessen hat. Solange ich damit nicht Tabellen dritter gegen deren willen oder wissen öffne sehe ich da keinerlei Probleme.
Anzeige
AW: Deine Antwort sollte gelöscht werden!
13.07.2010 16:52:22
t.ebbinghaus
Lieber Namensfetter Torsten,
ich bitte um etschuldigung, ich habe nicht Dich sondern die Anwort von Martin S gemeint, die ich falsch wie folgt falsch verstanden habe:
eine rüde Attacke auf mich, dass man meine Fragen / Antworten löschen sollte, da ich mich ja nur erkundigen wollte, wie man ein Kennwort knackt. Dabei hatte ich übersehen, dass Dein in einer separaten Antwort erschien - zeitliche überschneidung - und hatte gedacht die Antwort von Martin S. wäre
Frech Frage, sollte man löschen - aber hier ist dein Macro....
Sorry für mein Missverständnis, war keine böse Absicht gegen Dich (Danke für den Versuch, war aber wirklich nicht das Ziel), sondern eher Wut darüber, dass jemand das Löschen von Threads verlangt, dass ich dann auch noch auf mich bezogen habe.
Danke & Gruss
Thorsten
Anzeige
AW: Deine Antwort sollte gelöscht werden!
13.07.2010 20:22:56
Torsten
Kein Problem. Vielen Dank für deine Erklärung, ich kann nur diese Unfreundlichkeit in den Foren nicht leiden. Es gibt viel zu viele Leute die sich für was besseres halten oder sich dem Rest der Welt völlig geistig Überlegen fühlen. Aber anstatt anderen die freundlich Ihre Fragen in Foren stellen (was ja wohl der Sinn selbiger ist) einfach zu helfen oder Sie auch konstruktiv auf Fehler hin zu weisen, werden viele einfach für dumm hin gestellt oder beleidigt.
Ich meine schau Dir mal deinen Thread an. Wie viele Antworten sind da alleine auf das Leidige Thema "Denglisch" gemünzt? Und wie viele Leute interessiert das wohl ob jetzt jemand in einem Forum (das sich auch noch mit VBA befasst) Deutsche und Englische Wörter vermengt, oder nicht? Es gibt sicher Foren in denen man sich zu so was auskotzen kann. Dort interssiert das dann vielleicht auch jemanden... Das selbe mit Rechtschreibfehlern, ich mache viele, das weiss ich. Aber soll ich deshalb jetzt nix mehr schreiben, damit sich auch ja keiner in seiner überragenden Intelligenz beleidigt fühlt?
Ich finde das nicht mein Beitrag, sondern die ganze Off Topic scheisse, inklusive diesem Beitrag in eine Trollecke verschoben werden sollte. Beiträge zu löschen ist wohl nicht der Gedanke eines Forums...
Over and out...
Anzeige
Rise of "Middleminded" - TEOCAWKI ?!
15.07.2010 01:46:54
Luc:-?
ohne Worte :-?

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Passwortschutz in Excel-Makros auslesen und verwenden


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Erstelle ein Userform mit einem Textfeld für die Passwort-Eingabe und einem Button.

  2. VBA-Code hinzufügen: Füge den folgenden Code in das Click-Ereignis des Buttons ein:

    Private Sub CommandButton1_Click()
       Dim pw As String
       On Error GoTo ErrorHandler
       pw = TextBox1.Value
       ActiveSheet.Unprotect Password:=pw
       Rows(ActiveCell.Row).Interior.ColorIndex = 6
       ActiveSheet.Protect Password:=pw
       Exit Sub
    ErrorHandler:
       If Err.Number = 1004 Then
           MsgBox "Passwort falsch"
       Else
           MsgBox "anderer Fehler"
       End If
    End Sub
  3. Fehlerbehandlung: Der Code fängt Fehler ab, wenn das Passwort falsch ist.

  4. Aktivierung der Zellen: Der Hintergrund der aktiven Zeile wird eingefärbt, und die Tabelle wird wieder mit dem Passwort geschützt.


Häufige Fehler und Lösungen

  • Fehler 1004: Dieser Fehler tritt auf, wenn das Passwort falsch ist. Stelle sicher, dass das eingegebene Passwort korrekt ist.

  • Passwort vergessen: Wenn du das Passwort nicht mehr weißt, kannst du keine Änderungen vornehmen. In diesem Fall gibt es keine legale Methode, um das Passwort zu knacken.

  • Code funktioniert nicht: Überprüfe, ob das Makro in einer aktiven Excel-Umgebung mit aktivem Blattschutz ausgeführt wird.


Alternative Methoden

  • VBA zum Knacken des Passworts: Es gibt VBA-Skripte, die versuchen, ein Passwort für den Blattschutz zu knacken. Ein Beispiel ist der folgende Code:

    Sub pcwBreaker()
       Dim i As Integer, j As Integer, k As Integer
       Dim Kennwort As String
       On Error Resume Next
       For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
           Kennwort = Chr(i) & Chr(j) & Chr(k)
           ActiveSheet.Unprotect Kennwort
           If ActiveSheet.ProtectContents = False Then
               MsgBox "Das alternative Kennwort lautet: " & Kennwort
               Exit Sub
           End If
       Next: Next: Next
    End Sub
  • Passwort sichtbar machen: Du kannst versuchen, das Passwort sichtbar zu machen. Dies funktioniert jedoch nur, wenn du die Datei nicht mit einem Passwort geschützt hast.


Praktische Beispiele

  • Beispiel für Passwortabfrage: Implementiere eine Userform, die den Benutzer nach dem Passwort fragt, bevor er Änderungen an der Tabelle vornehmen kann.

  • Datenübergabe an Word: Du kannst den Inhalt der aktiven Zeile an einen Word-Serienbrief übergeben, sobald das Passwort erfolgreich eingegeben wurde.


Tipps für Profis

  • Passwort schützen: Vermeide es, Passwörter im Code zu speichern. Nutze stattdessen Userforms, um das Passwort sicher abzufragen.

  • VBA-Sicherheit: Achte darauf, dass dein VBA-Projekt vor unbefugtem Zugriff geschützt ist. Stelle sicher, dass die Makros nur in vertrauenswürdigen Umgebungen ausgeführt werden.

  • Regelmäßige Backups: Mache regelmäßig Backups deiner Excel-Dateien, um Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich das Passwort für den Blattschutz auslesen?
Nein, es gibt keine direkte Möglichkeit, das Passwort für den Blattschutz auszulesen. Du kannst jedoch versuchen, es mit VBA zu knacken.

2. Was passiert, wenn ich das Passwort vergesse?
Wenn du das Passwort vergessen hast, gibt es keine legale Methode, um den Blattschutz aufzuheben. Es wird empfohlen, das Passwort sicher zu speichern.

3. Wie kann ich den Blattschutz aufheben, wenn ich das Passwort vergessen habe?
Es gibt einige VBA-Skripte, die versuchen, den Blattschutz zu knacken, aber dies sollte nur für eigene Dateien verwendet werden und ist nicht immer erfolgreich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige