Excel VBA – Wie Sie den Blattschutz ohne Kennwort aufheben

Excel VBA - Wie Sie den Blattschutz ohne Kennwort aufheben

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Wenn Sie das Passwort für den Blattschutz von Excel vergessen haben, ist es nicht das Ende der Welt. Dieser lässt sich mit ein paar Kniffen aufheben. In diesem Artikel zeige ich, wie Sie das Kennwort entfernen können.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Microsoft verwendet bei verschiedenen Excel Versionen unterschiedliche Verschlüsselungsmechanismen. Daher habe ich diesen Beitrag aufgeteilt:

Excel Versionen 2010 und älter

In den Excel Versionen bis 2010 wird ein relativ einfacher Algorithmus für die Verschlüsselung von Passwörtern verwendet. Die Passwörter werden als Hashwert gespeichert, welcher maximal 16 Bit (4 Zeichen) enthalten kann. Bei der Entschlüsselung wird das Passwort mit dem generierten Hash verglichen. Dadurch ergeben sich 2^16 = 65.536 Möglichkeiten.

Ein kleines Beispiel zur Verdeutlichung. Schützen Sie Ihr Arbeitsblatt mit dem Passwort test. Drücken Sie nun Blattschutz aufheben und geben Sie stattdessen zzyw oder BBAb ein. Der Blattschutz wird aufgehoben! Da der Hashwert sehr kurz ist, teilen sich viele verschiedene Passwörter denselben Hashwert.
So sieht der Hash in XML aus:
Excel 2010 Passwort Hash in XML

Daher kann man mit der Bruteforce Methode alle möglichen Kombinationen in wenigen Sekunden durchgehen. Dazu legen wir ein Makro an. Rufen Sie dazu die Entwicklungsumgebung mit der Tastenkombination ALT + F11 auf und fügen Sie ein neues Modul ein.

Modul einfügen

Fügen Sie nun den folgenden Code ein:

Sub Blattschutz_Aufheben()
  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 "Der Blattschutz wurde aufgehoben."
End Sub

Führen Sie nun das Makro mit der Taste F5 aus. In wenigen Sekunden erscheint die Meldung, dass der Blattschutz erfolgreich entfernt wurde.
Blattschutz entfernt


Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Excel Versionen 2013 und neuer

In den neueren Versionen von Excel wird ein verbesserter SHA-512 Algorithmus verwendet. Wenn man sich das Ganze in XML anschaut sieht man den Unterschied.
Salted SHA-512 Hash in Excel 2013
Der Hashwert ist wesentlich länger, darüber hinaus ist mit Salt eine zufällige Zeichenfolge hinzugefügt worden. Dieser Algorithmus lässt sich nicht in einer Paar Sekunden knacken.

Allerdings lässt sich das Ganze relativ einfach umgehen. Es dauert nur etwas länger – eine Minute statt Sekunden. So geht es:

Alle Excel Dateien sind im Grunde Archive mit XML Dateien. Hängen Sie zunächst .zip an das Ende des Dateinamens an. So wird blattschutz.xlsx zum blattschutz.xlsx.zip
Dateinamen ändern
Bestätigen Sie die Warnmeldung mit Ja.
Warnmeldung bestätigen
Nun hat sich die Excel Datei in ein Archiv verwandelt.
Archiv
Dieses können Sie ganz normal mit Windows Explorer öffnen.
Archiv mit Windows Explorer öffnen
Falls es mit Ihrer Windows Version nicht geht, können Sie zu einem Packprogramm wie WinRAR oder 7zip greifen.
Öffnen Sie den Ordner xl und anschließend worksheets.
Ordner worksheets
In diesem Ordner befinden sich die Arbeitsblätter. In unserem Fall gibt es nur das Eine, sheet1.xml. Das zweite Arbeitsblatt heißt dann sheet2.xml, das dritte sheet3.xml und so weiter.
Kopieren Sie die Datei sheet1.xml auf den Desktop und öffnen Sie diese mit dem Notepad Editor. Lassen Sie dabei den Ordner offen.
Arbeitsblatt mit Editor öffnen
Suchen Sie (Tastenkombination STRG+F) nach sheetProtection.

Salted SHA-512 Hash in Excel 2013

Löschen Sie nun alles, was nach sheetProtection und vor /> kommt. Am Ende sollte es so aussehen:

<sheetProtection />

Speichern Sie nun die Datei und schließen Sie den Editor. Kopieren Sie die geänderte sheet1.xml Datei zurück in den worksheets Ordner. Überschreiben Sie das Original.

Schließen Sie nun den Ordner. Löschen Sie die Endung .zip aus dem Dateinamen. So wird blattschutz.xlsx.zip wieder zum blattschutz.xlsx
Dateiendung xlsx

Wenn Sie diese Excel Datei nun öffnen, ist der Blattschutz aufgehoben.

Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Bildquelle: Pexels, CC0 Public Domain

11 Kommentare
  1. Andrew
    Andrew sagte:

    Hallo vielleicht können Sie mir helfen? Ich habe 2 userformen. Die erste hat 6 Combo boxen 14 Textboxen und 1 commandbutton. Die zweite hat nur 1 Listbox jetzt möchte ich wenn ich in UF 1 auf den Button klicke die inhalte der Text und Comboboxen Spalten weise in die list boxbgeladen werden.
    können Sie mir vielleichteinen Tipp geben?

    Freundliche grüße
    andrew

    Antworten
  2. anon
    anon sagte:

    Die Anweisung hat mit sehr geholfen, vielen Dank !

    Sie ist allerdings hinsichtlich Excel 2013 nicht ganz richtig. Es muss der komplette XML-Eintrag von „“ geloescht werden.
    Andernfalls funktioniert es nicht vollständig.

    Noch ein Hinweis für Linux bzw. Open- und Libre-Office Benutzer:
    In OO und OL funktioniert die Drop-Down-Liste von Excel 2013 nicht richtig.
    Damit Excel 2013 Tabellen mit Drop-Down-Listen auch unter OO und OL problemlos funktionieren muss man die xlsx Tabelle unter Excel mit „Save as Excel 97-2003-Arbeitsmappe“ speichern.
    Anschließend kann man die erzeugte XML Tabelle funktionsfähig in OO/OL laden.

    Antworten
  3. anon
    anon sagte:

    Da bei Kommentaren auf dieser Seite offenbar HTML/XML code ausgefilter wird, wird der zu loeschende String nicht angezeigt.
    Wendet Euch bitte an den Webmaster falls Ihr die Info benoetigt.

    Antworten
  4. Marcel
    Marcel sagte:

    Ich konnte das Problem mit den obigen Ausführungen bei meiner Datei leider nicht lösen. Da ich Excel 2016 nutze funktioniert das Makros nicht und es ist nur die zweite Variante (Zip) möglich. Diese Variante habe ich mit einer beliebigen xlsx Datei ausprobiert und konnte dort den Blattschutz aufheben. Leider handelt es sich bei meiner Datei um eine Datei mit Makros, also eine xlsm. Wenn ich die Zip-Variante dort probiere, bleibt der Blattschutz bestehen. Gibt es dafür noch eine Lösung? Muss man vielleicht noch eine zweite Datei aus den Zip-Ordnern ändern? Das Abspeichern als xlsx ist keine Lösung, da die Makros nicht verloren gehen sollen.

    Antworten
  5. Adrian
    Adrian sagte:

    Danke, hat mir sehr geholfen! Ging bei Excel 2016 einwandfrei, um einen mir unerklärlichen Blattschutz wieder zu entfernen.

    Antworten
  6. Memo
    Memo sagte:

    Hallo zusammen,

    beim ausführeden des Codes erscheint bei mir die Fehlermeldung „Fehler beim Kompilieren: Variable nicht defniert.

    Obwohl ich wie abgebildet alles korrekt mache, kommt diese Fehlermeldung.

    Was mache ich falsch?

    Kann mir jemand helfen?

    Besten Dank im Voraus.

    VG
    Memo

    Antworten
  7. Eddy
    Eddy sagte:

    Leider funktioniert das unter Excel 2016 nicht so ganz. Die Arbeitsmappe ist zwar entsperrt, aber „Arbeitsmappe schützen“ immer noch aktiv. Klicke ich drauf, wird das Passwort angefordert.

    Kann jemand helfen?

    Antworten
  8. Hecht
    Hecht sagte:

    Von Programmierung habe ich keine Ahnung (bin nur Userin). Aber mit dieser super Anleitung hab‘ ich die Arbeitsblätter in meiner Datei entsperren können. Bin total happy. Vielen, vielen Dank.

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.