Excel VBA Laufzeitfehler 1004

Hallo zusammen,

ich habe ein Problem bei Excel.
Und zwar habe ich folgenden Code, der auch funktioniert, wenn man keinen Blattschutz aktiviert hat:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then '=D Anpassen! Spalte mit deiner Datenüberprüfung-Liste
If Target.Row = 1 Then 'Anpassen! Zeile mit deiner Datenüberprüfung-Liste
Range(„c4:d52“).ClearContents
Range(„g4:h52“).ClearContents
Dim Zelle As Range
For Each Zelle In Range(„i4:i52“)
If Zelle = „“ Then
Zelle.EntireRow.Hidden = True
Else
Zelle.EntireRow.Hidden = False
End If
Next Zelle
End If
End If
End Sub

Wenn ich jetzt allerdings den Blattschutz aktiviere, kommt folende Fehlermeldung:
„Laufzeitfehler ‚1004‘:smiley:ie Hidden-Eigenschaft des Range-Obejktes kann nicht festgelegt werden“

Wie kann ich diesen Fehler beheben?

Vielen Dank für Eure Hilfe!

Hallo Flower,

Blattschutz, ist Blattschutz. Da kannst du auch mit VBA nix ändern. Dazu hebe einfach am Anfang des Codes den Blattschutz auf, und setze ihn dann wieder.

Sub ProtectAll()
****Dim sh As Worksheet
****Dim myPassword As String
****myPassword = „password“
****
****For Each sh In ActiveWorkbook.Worksheets
********sh.Protect Password:=myPassword
****Next sh
****
End Sub

Sub UnrotectAll()
****Dim sh As Worksheet
****Dim myPassword As String
****myPassword = „password“
****
****For Each sh In ActiveWorkbook.Worksheets
********sh.Unprotect Password:=myPassword
****Next sh
****
End Sub

Quelle: http://www.mrexcel.com/forum/excel-questions/81185-p…

MfG
OVM

–> Wenn der Beitrag hilfreich war, dann bitte als hilfreich Markieren. Danke!

Bei aktiviertem Blattschutz wird die Fehlermeldung immer kommen, da ein geschütztes Blatt im Layout nun mal nicht geändert werden kann (auch nicht per VBA).

Du kann also entweder

  1. im Code abfragen, ob der Blattschutz aktiv ist, und dann nichts aus- oder einblenden, oder
  2. per VBA den Blattschutz aufheben, und anschließend wieder aktivieren.

Gruß,
BellHouse

vor dem code ActiveSheet.Unprotect

danach

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Gruss