Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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
Inhaltsverzeichnis

Unprotect und Protect von Arbeitsblätter

Unprotect und Protect von Arbeitsblätter
15.02.2023 11:00:57
Arbeitsblätter
Hallo,
ich habe jeweils ein Makro geschrieben welches meine Arbeitsblätter schützt und den Schutz entfernt.
Dieses funktioniert soweit auch gut, sobald ich aber mehrere Arbeitsblätter Gruppiert habe funktioniert der Code nicht mehr. Dann kommt Laufzeitfehler 1004 Unprotect-Methode ist beim Worksheet objekt nicht möglich.
Code für Schutz Aufheben

Sub Schutz_aufheben()
Dim sh As Worksheet
    For Each sh In Worksheets
    
        sh.Unprotect
        
    Next
    
End Sub

Woran kann das liegen? Ist es nicht Möglich den Blattschutz zu setzen oder zu entfernen sobald mehrere Arbeitsblätter Selektiert sind?
Gruß
Sven

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unprotect und Protect von Arbeitsblätter
15.02.2023 11:30:26
Arbeitsblätter
Hi
Was manuell nicht geht, geht auch per VBA nicht
Hier mal etwas gebastelt:
Sub ttt()
Dim i As Integer
Dim ws As Worksheet
If ActiveWindow.SelectedSheets.Count > 1 Then
    ReDim Auswahl(1 To ActiveWindow.SelectedSheets.Count)
    For i = 1 To ActiveWindow.SelectedSheets.Count
        Auswahl(i) = ActiveWindow.SelectedSheets(i).Name
    Next i
    Sheets(1).Select
    For Each ws In Worksheets
        ws.Unprotect
    Next ws
    Sheets(Auswahl).Select
Else
    For Each ws In Worksheets
        ws.Unprotect
    Next ws
End If
End Sub
cu
Chris
Anzeige
AW: Unprotect und Protect von Arbeitsblätter
15.02.2023 11:30:40
Arbeitsblätter
Hallo,
das geht nicht. Siehst du auch daran, dass "Blattschutz aufheben" nicht aktiv (ausgegraut) ist.
Gruß
Rudi
Workaround
15.02.2023 11:38:00
Rudi
Hallo,
Sub Schutz_aufheben()
  Dim sh As Worksheet
  Dim SelSheets
  
  Set SelSheets = ActiveWindow.SelectedSheets
  
  If SelSheets.Count > 1 Then
    Sheets(1).Select
  End If
  
  For Each sh In Worksheets
    sh.Unprotect
  Next
  
  SelSheets.Select
End Sub
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige