Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
404to408
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
404to408
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler 1004 (protection-Problem)

Laufzeitfehler 1004 (protection-Problem)
Thiemo
Hallo miteinander,
ich habe ein ziemlich umfangreiches VBA-Makro für Excel gezüchtet, das mir Excel-Dateien ausliest und in eine Datenbank schreibt, wobei noch mehr oder minder umfangreiches Logging in ein Blatt der Makro-Datei gemacht wird. Seltsamerweise stolpert das Log-Schreiben über den Blattschutz bei den auszulesenden Dateien und gibt einen Laufzeitfehler aus. Weit aus erstaunlicher ist für mich allerdings, dass, wenn man dann in den Debug-Modus wechselt, das Makro weiter ausgeführt wird. Allerdings ist es dann recht durcheinander und beendet nicht so, wie ich es erwarten würde.
Zum Ausprobieren und Code-Bestaunen habe ich relevante Dateien angehängt. https://www.herber.de/bbs/user/4833.zip
Ich verwende die englischen Versionen von Windows und Office 2000.
Gruss
Thiemo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler 1004 (protection-Problem)
stefan
also das hatte ich mit meinem vb auch (siehe ein thread weiter unten)
da hat ein simples .Cells().Locked = false geholfen
ob die klammern hin mussten kann ich jetzt net gucken
AW: Laufzeitfehler 1004 (protection-Problem)
stefan
ups... html hat die durch die größer/kleiner zeichen um das worksheet vor dem .Cells gefressen
also für den fall dass das quellblatt Table1 heist:
Table1.Cells.Locked = False
AW: Laufzeitfehler 1004 (protection-Problem)
Thiemo
Danke für den Tip. er hat bei mir allerdings nicht zum Erfolg geführt. Ob ich im Log-Blatt alle Zellen des Schutzes beraube (Eigenschaften der Zelle) oder ob ich versuche im Makro, die Eigenschaften der zu verändernden Zellen zu ändern, bleibt sich gleich.
Anzeige
AW: Laufzeitfehler 1004 (protection-Problem)
01.04.2004 09:06:22
Thiemo
Hallo zusammen,
ich habe einen (unschönen) Workaround gefunden. Sobald das Makro eine Datei öffnet, entfernt es den Blattschutz der (relevanten) Blätter. Codefragment:
Workbooks.Open Filename:=STR_Dateipfadliste(I_i), _
Updatelinks:=0, ReadOnly:=True, Format:=5, _
Password:=False, writerespassword:=False, _
ignorereadonlyrecommended:=True
' Workaround, um einen Laufzeitfehler 1004 zu verhindern,
' der auftritt, wenn die verarbeiteten Blätter mit
' Blattschutz versehen sind und in das Log-Blatt
' der Makro-Datei geschrieben wird. Es konnte nicht
' herausgefunden werden, warum sich Excel/VBA so
' inkonsistent verhält. Es scheint, dass Excel/VBA nicht
' überprüft, ob der Schutz auf dem Log-Blatt liegt, sondern
' auf dem Blatt, dass gerade "zu oberst" angezeigt wird,
' was glaube ich dem Active-Blatt entspricht. Sieht für
' mich nach einem Bug in Excel/VBA aus.
Call blattschutz_aufheben(Workbooks(STR_Dateiliste(I_i)))

Sub blattschutz_aufheben( _
WB_Mappe As Workbook _
)
' KETH, 2004-03-31, thiemo.kellner@winterthur.ch
' Hebt den Blattschutz aller Blätter der übergebenen Datei auf
' Variablen deklarieren
Dim WS_Blatt               As Worksheet
For Each WS_Blatt In WB_Mappe.Worksheets
On Error GoTo WriteLog
WS_Blatt.Unprotect (CSTR_Blattschutz_Passwort)
On Error GoTo 0
Next WS_Blatt
Exit Sub
WriteLog:
write_log _
WB_Mappe.FullName, _
"Aufheben des Blattschutzes auf '" & WS_Blatt.Name & "' war nicht " & _
"erfolgreich.", _
CSTR_Warn_Log
Resume Next
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige