Aus dem Alltag eines IT'lers

Blattschutz in Excel (97-2010) knacken und aufheben

Tips & Tricks Wer kennt das nicht: man erhält eine Exceltabelle, die jedoch mit einem Blattschutz versehen ist. Dadurch lassen sich einzelne Zellen nicht bearbeiten und Zeilen oder Spalten nicht löschen, etc. .

Was also tun, wenn man vor diesem Problem steht ?

Abhilfe schafft in diesem Fall ein simples Makro, das man sich in Excel eben schnell erstellt und dann im betroffenen Dokument ausführt.
Schnell und effizient.

Nachfolgend der Code:

QUOTE:

Sub Blattschutz_löschen()
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 n = 65 To 66
For o = 65 To 66
For p = 65 To 66
For q = 65 To 66
For r = 65 To 66
For s = 65 To 66
For t = 32 To 126

ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & _
Chr(n) & Chr(o) & Chr(p) & Chr(q) & Chr(r) & Chr(s) & Chr(t)

Next t
Next s
Next r
Next q
Next p
Next o
Next n
Next m
Next l
Next k
Next j
Next i
MsgBox "Fertig"
End Sub



Eine sehr guute Alternative ist die "Blattschutz_weg.xla", die es in "Paulchens Excelwerkstatt" unter diesem Link zum kostenlosen Download gibt.

Dieses AddIn funktioniert unter Excel 2007 und auch 2010 ebenso problemlos und fügt unter "Extras" bzw. "AddIns" (ab Excel 2007) eine zusätzliche Schaltfläche zum Aufheben des Blattschutzes ein.

Der Vorteil bei dieser Variante ist, dass man
a) das Makro nach der Aktion und vor dem Speichern nicht löschen muss und
b) ein Anwender, selbst nachdem das Makro gelöscht wurde, nicht die Warnmeldung und Abfrage erhält, ob Makros ausgeführt werden sollen.

Diese Aktion und Meldung hat man, wenn man die erste Variante wählt und den Code als Makro selbst hinzufügt.



Viel Spaß damit. :-)

19 Comments

Linear

  • Jotschi  
    Sehr guter Tipp vielen vielen Dank
    • Mr. Nerd  
      Gern' geschehen ! :-)
      • Skylu  
        Hallo Zusammen!
        Der Code funktioniert super für einzelne Blätter.

        Ich muss jedoch eine Vielzahl von Blättern freischalten und weiß leider nicht wie ich den Code umschreiben muss,damit er z.b eine Schleife von Blatt 1 bis Blatt 40 rechnet...

        Grüße
        skylu
  • Waldemar  
    Gibt es nicht eine Standard Funktion von Excel zum Aufheben des Blattschutzes?
    • Mr. Nerd  
      Nicht, dass ich wüsste. :\
      Vielleicht unter 2010 ?
    • Hilfe, Tipps, Tricks - Martin  
      Doch Waldemar,
      natürlich gibt es eine Standard-Funktion zum Aufheben des Blattschutzes. Der Tipp war hier nur für die Fälle, wo man diese Standard-Funktion nicht verwenden kann weil man das Passwort nicht (mehr) kennt.

      Die Standard-Funktion kannst Du unter Extras -> Schutz -> Blattschutz aufheben. Aber wie gesagt, das war von Mr. Nerd nicht gemeint, mit Sicherheit kennt er diese Funktion aber. ;-)

      Liebe Grüße!
      • Mr. Nerd  
        Das ist korrekt. :-)
  • Patrick  
    Lange gesucht und jetzt gefunden. Danke für den tollen Tipp.
  • lomet  
    Hallo allerseits,

    ich habe da so meine Zweifel an dem VB-Code, der wohl so etwas wie eine BruteForce-Attacke auf das verwendete Password sein soll. Zumindest die Länge das Passwords muss bekannt sein, sonst hat man damit nicht den Hauch einer Chance. Ebenfalls ist der Raum der möglichen Zeichen nur ASCII 65-66, also nur A und B. Niemand erstellt solche Passwörter. Eine Universal-Lösung zum "Kicken" des Blattschutzes ist also nicht ganz so einfach...
    Wenn man eine Excel-Datei mit gesperrten Zellen erhält, dann hat das in der Regel auch einen Grund und man sollte daher nicht irgendwelche Spielereien versuchen, um den Schutz aufzuheben.
    So far, so bad....
    • Mr. Nerd  
      Hm....ja, mag sein.
      Fest steht aber, dass es bisher stets geklappt hat - und das bei den Anderen hier wohl auch.
      Daher meine Frage: schonmal ausprobiert ?
  • jever  
    Funktioniert einwandfrei! Alte Excel mit verloren gegangenem PW ließ sich damit wieder freischalten! Und ja: Länge und enthaltene Zeichen völlig unbekannt.
    • lomet  
      Die Idee ist durchaus brauchbar, allerdings mit dem exakten Quellcode wie oben klappt es nicht.
      Hier also ein bisschen Programmierwissen: Die Schleifen von i bis t dienen dazu, eine Kombinatorik an Passwörtern zu generieren. Es wird dadurch ein "Versuchspasswort" erstellt, das neben Unprotect als Parameter steht. Da man das Passwort nicht kennt, hofft man darauf, es durch die Schleifen zu erraten. Innerhalb dieser Schleifen werden verschiedene Zeichen (ASCII 65 und 66 ("A",B")für das Passwort "ausprobiert". Beim letzten Zeichen t gibt es aus irgendeinem Grund eine größere Möglichkeit an Zeichen, nämlich ASCII 32 bis 126, was der kompletten ASCII liste entspricht, was auf jeden Fall schonmal besser ist. Das heisst, 65 to 66 ist falsch, 32 to 126 ist besser.

      Allerdings zeigt sich bereits jetzt, daß also die Schleifenanzahl direkt mit der Passwortlänge übereinstimmen muss.
      Die Chr-Kette ist nichts anderes als das sogenannte Versuchspasswort.

      Wenn das Passwort nur drei Zeichen hat, kann es nicht klappen, wenn man ein Passwort aus 12 Zeichen wie oben probiert.
      Man müsste also das Makro immer bei jedem Versuch mit einer weiteren Schleife ausstatten. Man müsste also versuchsweise mit einer Schleife anfangen, dann im Makro eine zweite dazusetzen usw bis es klappt, da die Passwortlänge ja unbekannt ist.
      Dann wäre es sicher möglich, den Schutz zu knacken. Das ist aber alles andere als effizient, weil man für jede Passwortlänge dann erneut Programmzeilen zu tippen hat. Auch steigt die Versuchszeit irgendwann enorm an, den man hat schon bei zwei Zeichen 94*94 = 8836 Möglichkeiten, für mögliche Passwörter. Da ist der PC ne ganze Weile beschäftigt...
      Ich habe dann also auch den exakten Code von oben ausprobiert, mit einem Passwort, das ich mir selbst ausgedacht habe. Es hat erwartungsgemäß nicht geklappt, da ich nicht die vom Makro erwartete Länge verwendet habe.
      Die On Error Anweisung klappt leider nicht richtig, Excel meckert jedes gescheiterte Passwort im Debugger an, so dass man ständig reagieren muss.

      Wenn man also eine Möglichkeit hätte die Passwortlänge zu variieren und die fehlerhaften Passwörter irgendwie unterdrücken kann, würde es gehen.
      • Mr. Nerd  
        Interessanter und durchaus lesenswerter Beitrag.
        Vielen Dank für das Feedback !
  • Hans  
    Würde das Makro auch funktionieren, wenn als Blattschutz eine Tastenkombination gewählt wurde, etwa Strg.+ Alt + PageUp ? Befinde mich derzeit leider nicht an einem Rechner mit Office-Paket, daher kann ich es nicht ausprobieren...
    • Mr. Nerd  
      Gute und berechtigte Frage !
      Habe es selbst noch nicht ausprobiert. Wenn Sie mal dazu kamen, lassen Sie uns doch bitte wissen ob es funktioniert oder nicht.
      Danke. :-)
  • TheGiga  
    Ich weiß nicht, was Ihr alle für Probleme habt?
    Ich habe eben getestet:

    Passwort: A4-'#C3D4&%561/-

    Sind 16 Stellen und Sonderzeichen, wie man sehen kann. Das war nach ca. 5 Sekunden geknackt.

    Also Vielen Dank für die paar zeilen Code, hat mir schon öfter den Arsch gerettet.

    MfG TheGiga
  • butzelmann  
    Hierbei handelt es sich augenscheinlich um eine bruteforce attacke auf den hashwert des Passworts und nicht auf das Passwort selbst. Die Länge und der Inhalt des Passwortes ist somit egal.

    Der Excel hashing Algorithmus ist wohl dermaßen miserabel, daß es nur 2048*94 mögliche Kollisionen gibt.
  • Uwe  
    Hallo Zusammen,

    Excel 2010 -> der Code funktioniert.

    Mich hat der Chr(65) bis Chr(66) Bereich bei den Passwörter auch ein wenig gewundert.

    Ich habe dann allerdings nicht (wie viele hier selbst ernannte Experten) über die Sinnhaftigkeit des Codes philosophiert, sondern ihn getestet.

    Ergebniss: Unabhängig von länge und komplexität hat das Makro den Blattschutz in ca. 5 Sekunden entfernt.

    Das die Zeit konstant ist wahr nicht überraschend, dass alle Passwörter geknackt werden schon. Offensichtlich wird aus dem Passwort nur ein Hash generiert, der nicht sonderlich komplex ist. Mir soll es recht sein ;-)

    Gruß Uwe


    PS: Zum Anwendungszweck: Das entfernen des Passwortes erspart in regelmäßigen Abständen 2-3 Stunden Arbeit bei dem ausfüllen von Energietabellen eines Stromnetzanbieters. Noch dazu werden Fehler welche beim abtippen passieren können ausgeschlossen. Ich halte qualitativ hochwertigere Arbeit in kürzerer Zeit, in keinem Falls für moralisch verwerflich. Aussagen wie "Wenn man eine Excel-Datei mit gesperrten Zellen erhält, dann hat das in der Regel auch einen Grund und man sollte daher nicht irgendwelche Spielereien versuchen, um den Schutz aufzuheben." finde ich persöhnlich nur dumm.
    • Mr. Nerd  
      Ich entschuldige die verspätete Freischaltung des Kommentars, aber ich war die letzten Tage leider etwas eingebunden.

      Danke für das aufschlussreiche Feedback ! ;-)

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
BBCode format allowed
Was ergibt 17+4 ?

Submitted comments will be subject to moderation before being displayed.