Excel – Blattschutz aufheben bei unbekanntem Passwort

Grade in die Situation gekommen, ein altes Makro sezieren zu müssen. Bei der Gelegenheit ist mir aufgefallen, dass ich in der Datei vor ca. 4 Jahren einen Blattschutz mit Passwort eingerichtet habe. Und wie es der Zufall so will, viel mir selbiges natürlich auch nicht mehr ein.

Also musste schnell eine Lösung her, und die lieferte mir Google überraschend schnell. Ich hätte gedacht, dass die Schutzmechanismen von Office etwas ausgeklügelter wären, aber man kann den Blattschutz mit einem kleinen Makro sehr leicht und relativ schnell aushebeln.

Eine Videoanleitung dazu habe ich bei Youtube gefunden und spare mir daher an dieser Stelle die weiteren schriftlichen Ausführungen und verweise einfach auf das Tutorial.

 
Und hier noch der benötigte Makro-Code, einfach als Modul in dem Dokument speichern, dessen Blattschutz man entfernen möchte, und anschließend auf dem Blatt ausführen.

Sub Blattschutz_Entfernen()
  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 sollte jetzt deaktiviert sein."
End Sub

Funktioniert mit Excel 2003 ganz hervorragend, nach knappen 2 Minuten konnte ich das Dokument wieder vollständig nutzen und bearbeiten. Laut Video soll das Makro auch in Excel 2007 nutzbar sein.

  1. 26. April 2013, 09:12 | #1

    Sehr geehrter Verfasser,

    klasse Anleitung. Das war sehr hilfreich und funktioniert einwandfrei.
    Gruß

  2. Lina
    29. April 2013, 12:00 | #2

    Hallo! Super danke für das makro;)
    da ich auch nicht mehr so recht wusste wie das überhaupt geht habe ich hier http://www.excel-helfer.de/excel-blattschutz-zellen-bereiche-und-arbeitsblaetter-schuetzen.html auch noch eine nützliche seite entdeckt….diesmal versuch ich auch mir das passwort zu merken:D

  3. LuckyDuke
    28. November 2013, 12:10 | #3

    super Tutorial und funktioniert einwandfrei bei Excel 2003. DANKE

  4. Sabrina
    10. Dezember 2013, 23:22 | #4

    Das funktioniert auch prima bei Exel für Mac 2011…
    Hat mir viel Arbeit erspart der Tipp! Herzlichen Dank!

  5. Maria
    28. Januar 2014, 09:39 | #5

    perfekte Anleitung und Funktion auch in Excel 2013!!! Vielen Dank.

  6. Danny
    3. Februar 2014, 18:46 | #6

    Morgen,
    diese Anleitung funktioniert einwandfrei und geht auch mit Excel 2013!
    Vielen Dank

  7. Der Hexer
    19. Februar 2014, 20:20 | #7

    SUUPER !!
    Hat auf Execel für Mac 2011 funktioniert innerhalb von wenigen Minuten funktioniert!
    Und ich bin nun wirklich nicht der Excel-Held 🙂

  8. Steve
    30. Juni 2014, 16:20 | #8

    Vielen Dank für den Super Tip, echt klasse 🙂

  9. jue
    24. September 2014, 15:25 | #9

    Hallo
    ich kenne dien code schon länger , funktioniert auch mit 2010.
    Frage kann man diesen anpassen für mehrere Sheets (4) in der gleich Datei ?
    freundliche grüsse Jue

  10. dieter
    15. März 2015, 17:53 | #10

    Benötige die Aufhebung eines Blattschutzes.
    Habe Excel 2007. Allerdings sind alle Menüpunkte die ich brauche, um das Macro einzubauen ausgegraut und nicht anwählbar. Was kann ich tun?

  11. Conbella
    19. März 2015, 12:59 | #11

    Leider ist bei mir ein Fehler in der Modulbeschreibung…habe aus der Beschreibung heraus kopiert…

    Fehler beim Kompilieren – Syntaxfehler…

    Was kann ich tun?

    • 20. März 2015, 10:06 | #12

      @Conbella
      Bitte nochmal versuchen. Durch ein Plugin-Update hatte sich ein Fehler eingeschlichen, & wurde als & angezeigt etc. Habe den Code oben korrigiert, er sollte jetzt wieder funktionieren.

      @dieter
      In der Datei scheint zusätzlich zum Blattschutz auch der Passwortschutz in VBA aktiviert zu sein. Wie man diesen Umgehen könnte weiß ich bisher aber auch nicht. Es gibt allerdings die Möglichkeit, den VBA-Code in ein neues Excel-Dokument zu kopieren, danach zusätzlich die Datei mit dem gesperrten Arbeitsblatt öffnen, das entsprechende Blatt auswählen und das Makro starten. Auch wenn es nicht in der selben Datei gespeichert ist, arbeitet es trotzdem auf dem aktiven Tabellenblatt und sollte den Schutz entfernen.

      @jue
      Besser spät als nie… mit dieser Erweiterung des Codes werden alle Tabellenblätter einer Datei abgearbeitet.

      Sub Blattschutz_Entfernen()
      
        Dim WS As Worksheet
        For Each WS In ActiveWorkbook.Worksheets
          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
       
      WS.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 von " & WS.Name & " sollte jetzt deaktiviert sein."
        
        Next
      End Sub
      

      Oder hier als Download der VBA-Export. Einfach den VBA-Editor öffnen, Datei => Datei importieren und dann die BAS Datei auswählen. Danach kann das Makro aufgerufen werden.

  12. Thomas
    20. März 2015, 09:58 | #13

    @Conbella
    Ersetze alle „&“ durch „&“ und alle „"“ durch „““.

  13. Thomas
    20. März 2015, 10:00 | #14

    Zweiter Versuch:
    Ersetze alle “amp;” durch “” und alle „&“ “quot;” durch ““”.

  14. Axel
    26. Juli 2015, 12:30 | #15

    Hat super geklappt für excel 2011 Mac! Vielen Dank!

  15. Gerhard
    29. Juli 2015, 21:20 | #16

    Sub Blattschutz_Entfernen()

    Dim WS As Worksheet
    For Each WS In ActiveWorkbook.Worksheets
    On Error Resume Next

    For i = 65 To 66

    Beim Starten des Makros kommt die Meldung:
    Fehler beim Kompilieren /Variable nicht definiert.

    Der Cursor steht auf dem i

    Was läuft hier falsch?
    Ich setze Excel 2007 ein.

    Im Voraus besten Dank.

    • 29. Juli 2015, 22:28 | #17

      Ganz oben im Code-Fenster steht bestimmt noch Option Explicit, damit wird festgelegt, das jede Variable vor der Verwendung deklariert werden muss.

      Also entweder i und alle anderen Variablen deklarieren (DIM i as Integer) oder Option Explicit entfernen, dann läuft der Code auch durch. Die zweite Option ist mit deutlich weniger Aufwand verbunden ^^

  16. Stephan
    7. August 2015, 00:53 | #18

    Perfekt! Zusammen mit der MS-Hilfe für Makroerstellung selbst für einen Makro-„Laien“ lösbar.

  17. mali
    2. Dezember 2015, 14:32 | #19

    Hallo,

    bei mir funktioniert leider nicht, da ich in VB gar nicht den Blatt auswellen kann, wenn ich oben auf + Zeichen drauf klicke kommt Passwort Abfrage. wie kann ich das umgehen?

    Danke für eure Hilfe

  18. Bernd
    23. Mai 2016, 17:15 | #20

    Superklasse!!
    Und der Schutz für eine Arbeitsmappe wird dann genauso gemacht mit diesem Script:

    Sub AMSchutzEntfernen()
    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
    ActiveWorkbook.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 „Arbeitsmappen-Schutz abgeschaltet“
    End Sub

  19. Michael
    10. November 2016, 21:12 | #21

    Ich kenne diesen Code auch sehr lange aber ich kämpfe seit Wochen schon das eine MSG mir die Ausgabe es Passwort nennt.

    Ich hab eine Excel Datei vor Jahren mit Blattschutz erstellt und ich will unbedingt mein Passwort wissen. Keine Ahnung was ich eingegeben habe. Entfernen ist ja kein Problem.

    Das ist echt mega schwer

  20. 12. November 2016, 11:55 | #22

    @Michael
    Ich fürchte, dass das nicht möglich sein wird. Excel errechnet aus dem verwendeten Passwort einen Hashwert, welcher dann gespeichert wird. Den Hashwert selbst hat Microsoft allerdings auf 16 Bit Länge begrenzt, so dass es maximal 65.536 unterschiedliche Hashwerte geben kann, bei gleichzeitig unendlich vielen möglichen Passwörtern. Es gibt folglich tausende unterschiedlicher Passwörter, mit denen die gleiche Arbeitsmappe entsperrt werden könnte, da sich aus ihnen der gleiche Hashwert errechnet.

    Das Macro geht nur die möglichen Hashwerte durch. Ein Rückschluss auf das Passwort ist allerdings nicht möglich, was auch Sinn und Zweck von Hashwerten ist.

    Hier noch eine Seite, auf der die Hashfunktion von Excel etwas detaillierter beschrieben wird:
    http://boschert-consulting.com/microsoft-excel-blattschutz-entfernen-bei-vergessenem-passwort/

  21. Rudi
    29. Dezember 2016, 12:16 | #23

    In Zukunft schreib ich mir meine Passwörter doch besser wieder auf! (Alzheimer grüßt)
    Das war Rettung in höchster Not! 🙂

    Danke sehr

  1. Bisher keine Trackbacks