Freigeben über

Laufzeitfehler 57121

Anonym
2011-11-29T16:27:21+00:00

Ich habe folgenden VBA Code in eine Arbeitsmappe

Diese Arbeitsmappe:

Option Explicit

Private Sub Workbook_Open()

    Call TabSchutz(True)

End Sub

Tabelle1:

Option Explicit

Sub TabSchutz(ByVal schützen As Boolean)

    If schützen Then

        Tabelle1.Protect "Test"

        Tabelle2.Protect "Test"

        Tabelle3.Protect "Test"

    Else

        Tabelle1.Unprotect "Test"

        Tabelle2.Unprotect "Test"

        Tabelle3.Unprotect "Test"

    End If

End Sub

Bei der Zeile - Tabelle1.Protect "Test" -

stürzt das Programm mit der Fehlermeldung Laufzeitfehler 57121 ab.

Wenn ich diesen VBA-Code in eine neue Arbeitsmappe kopiere, funktioniert der Code problemlos.

Hintergrund:

Die Arbeitsmappe, die abstürzt, enthielt vorher noch weiteren Code und ist bei der Nutzung abgestürzt. Danach tauchte der Fehler auf. Ich habe den kompletten Code außer die genannten Zeilen gelöscht und auch alle Tabelleninhalte entfernt. Dann habe ich die Arbeitsmappe unter einem neuen Namen abgespeichert. Dennoch benötigt die Datei knapp 500 kB.

Die Arbeitsmappe scheint beschädigt zu sein, was jedoch nicht den Code betrifft.

Kann man diesen Fehler irgendwie beheben?

Der Fehler taucht unter Excel 2003 und 2007 und den Betriebssystemen XP und Windows 7 auf.

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

3 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2011-12-06T13:02:25+00:00

    Hallo Dirk,

    Ich möchte dich bitten deine Anfrage auch direkt im Entwickler Forum von Microsoft zu posten. Das Microsoft-Developer-Netwerk ist auf diese Anfragen spezialisiert.

    Leider ist es mir nicht moeglich deine Anfrage direkt dorthin zu verschieben, ich moechte dich deshalb bitten diese Anfrage erneut im MSDN-Forum zu stellen.

    Hier der Link zum Forum:

    http://social.msdn.microsoft.com/forums/de-de/categories

    Es waere sehr nett von dir, wenn du uns einen Link, zu deinem Posting im MSDN-Forum, zur Verfügung stellst. Auf diese Weise koennen auch andere User schnell die Antwort finden.

    Gruss,

    Marco

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2011-11-29T19:46:05+00:00

    Nein, das ist nicht das Problem. Die internen Namen Tabelle1 bis Tabelle3 sind vorhanden.

    Meine Vermutung ist, das der Absturz des Programms irgend etwas derart gründlich "zerschossen" hat, dass das Programm hinterher nicht mehr funktionierte.

    Ich habe nach dem Absturz nur die Programmteile entfernt, die so oder so nicht mehr zur Ausführung kommen, da vorher der Laufzeitfehler auftritt und dann habe ich noch die Tabelleninhalte komplett gelöscht.

    Dennoch herzlichen Dank für den Hinweis.

    Dirk

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Anonym
    2011-11-29T16:57:18+00:00

    man könnte vermuten Du hast keine Tabelle die den internen Nmaen Tabelle1 hat. Dein Code verwendet nicht den Namen der im Register steht.

    Gruß Hajo

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare