Anzeige
Archiv - Navigation
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler 400

Fehler 400
08.05.2007 13:29:53
Dante
Hallo alle zusammen,
ich habe ein Problem mit meinen VB-Makros.
Eins von beiden erstellt einen Passwortschutz für alle Tabellenblätter im Dokument, das andere entfernt den Schutz dementsprechend. Damit verbunden ist die vorherige Eingabe des Passwortes per MsgBox. Dieses Passwort wird in eine Variable übergeben und mit einer Stringkonstante, das dem Passwort entspricht, verglichen.
Hier der Code (steht in "diese_Arbeitsmappe", nicht in einem extra Modul):

Sub Schutz_aller_Blaetter()
Dim blatt As Integer
Dim passwort As String
passwort = InputBox("Bitte Passwort eingeben: ", "Passwortabfrage")
If passwort  kennwort Then
MsgBox ("Falsches Passwort!")
Else
For blatt = 1 To Worksheets.Count
Sheets(blatt).Activate
ActiveSheet.Protect (kennwort)
Next blatt
End If
End Sub



Sub Schutz_aufheben()
Dim passwort As String
Dim blatt As Integer
passwort = InputBox("Bitte Passwort eingeben: ", "Passwortabfrage")
If passwort  kennwort Then
MsgBox ("Falsches Passwort!")
Else
For blatt = 1 To Worksheets.Count
Sheets(blatt).Activate
ActiveSheet.Unprotect (kennwort)
Next blatt
End If
End Sub


Die Konstante "kennwort" hab ich in einem extra Modul global definiert:
Public Const kennwort As String = "test"
In einer leeren Arbeitsmappe funktionieren die Makros; in meiner aktiven Exceldatei allerdings kommt beim Entfernen des Blattschutzes nur die Fehlermeldung 400 (beim Aufruf des Makros aus Excel) bzw. "Laufzeitfehler 1004: Anwendungs- / objektorientierter Fehler" (Start aus VB).
Hat jemand ne Idee, woher der Fehler kommt?
Danke!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler 400
08.05.2007 13:49:50
Rudi
Hallo,
auf das Activate solltes du verzichten und die Worksheets direkt ansprechen:

Sub tt()
Dim wks As Worksheet
For Each wks In Worksheets
wks.Protect "test"
Next
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Fehler 400
08.05.2007 14:11:35
Dante
Klasse, funktioniert wunderbar!
Vielen Dank für die schnelle Hilfe!
Gruß
Dante
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige