online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Petra65 vom 31.05.2021, 12:06 Options

Blattschutz und Makro: ActiveSheet.Unprotect bzw. ... .Protect funktionieren nicht

Hallo,

mal wieder ein Excel-Problem:

ich habe eine Tabelle mit diversen Tabellenblättern.
Zum Schutz einiger Daten sind teils ganze Tabellenblätter und auch Spalten mit einem Schutz versehen,

Mein Makro (der Arbeitsmappe) funktioniert dadurch leider nicht mehr. Auch das Einfügen von
ActiveSheet.Unprotect
ActiveShett.Protect
löst mein Problem nicht (an falscher Stelle eingefügt ???)

Hier das Makro:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

ActiveSheet.Unprotect

Application.EnableEvents = False

If Target.Column = 10 Then
With ThisWorkbook.Worksheets(Sh.Index)
zeile = ThisWorkbook.Worksheets("Behandlungen").Range("A" & Rows.Count).End(xlUp).Row + 1
ThisWorkbook.Worksheets("Behandlungen").Range("A" & zeile) = .Range("O3")
ThisWorkbook.Worksheets("Behandlungen").Range("B" & zeile) = .Range("O4")
.Range("A" & Target.Row & ":G" & Target.Row).Copy
ThisWorkbook.Worksheets("Behandlungen").Range("C" & zeile).PasteSpecial Paste:=xlValues, Operation:=xlNone
End With
Application.CutCopyMode = False
End If
Application.EnableEvents = True

ActiveSheet.Protect

End Sub


Erwähnen sollte ich noch:
Es gibt noch 2 weitere Makros (im Modul), die dafür sorgen den Schutz mit einem Klick aufzuheben, beeinflussen diese evtl. das obrige Makro ??

Sub Alle_Arbeitsblätter_schützen()
Dim s
Dim Name As Variant
Name = ActiveSheet.Name
Application.ScreenUpdating = False

For s = 1 To Sheets.Count
Sheets(s).Select
ActiveSheet.Protect
Next s
Sheets(Name).Select
Application.ScreenUpdating = True
End Sub

Sub Alle_Arbeitsblätter_Schutz_aufheben()
Dim s
Dim Name As Variant
Name = ActiveSheet.Name
Application.ScreenUpdating = False

For s = 1 To Sheets.Count
Sheets(s).Select
ActiveSheet.Unprotect
Next s
Sheets(Name).Select
Application.ScreenUpdating = True
End Sub


Bin für jede Hilfe dankbar ....

Viele Grüße - Petra


Antwort schreiben

Antwort 1 von Flupo vom 31.05.2021, 14:00 Options

Zitat:
an falscher Stelle eingefügt ???

Glaub ja.
Du hebst den Schutz (des aktuellen) Tabellenblattes auf und startest dann die With-Schleife, die mehrere Tabellenblätter der Arbeitsmappe bearbeitet.
Probiere mal, die Anweisungen für Schutz aufheben und schützen inerhalb der With-Schleife zu platzieren.
Alternativ kannst du auch vor dem Makro den Schutz auf allen Tabellenblättern aufheben, dann Makro abarbeiten und vor dem Ende wieder alle schützen.

Gruß Flupo

Antwort 2 von Petra65 vom 31.05.2021, 14:22 Options

Hallo,

ich glaube Du hast recht, nur leider komme ich nicht auf die Lösung, habe es innerhalb der Schleifer versucht ... ohne Erfolg ;-)


Werde es nachher in Ruhe nochmals angehen - vielen Dank und viele Grüße

Petra

Antwort 3 von Hajo_Zi vom 31.05.2021, 16:38 Options

Halo Petra,

Option Explicit

Sub Alle_Arbeitsblätter_schützen()
Dim s
Application.ScreenUpdating = False
For s = 1 To Sheets.Count
Sheets(s).Protect
Next s
Application.ScreenUpdating = True
End Sub

Sub Alle_Arbeitsblätter_Schutz_aufheben()
Dim s
Application.ScreenUpdating = False
For s = 1 To Sheets.Count
Sheets(s).Unprotect
Next s
Application.ScreenUpdating = True
End Sub

Gruß Hajo

Antwort 4 von Petra65 vom 31.05.2021, 21:59 Options

Hallo,

@Hajo: vielen Dank ... habe ich total übersehen ...;-(

und nach vielem grübeln bin ich auch auf die Lösung gekommen,
die Anmerkung von Flupo war richtig, ich musste tatsächlich in der While-Schleife den Schutz aufheben, und habe ihn dann nach der Schleife wieder gesetzt. Nun funktioniert es einwandfrei ... ;-)

Vielen, vielen Dank und viele Grüße

Petra

Ähnliche Themen

Makro, Blattschutz entfernen.
wolf-dancer  06.07.2008 - 278 Hits - 3 Antworten

im Makro prüfen ob Blattschutz aktiv
hofi76  07.07.2008 - 70 Hits - 3 Antworten

problem mit ActiveSheet.Protect
DerTeufel  11.07.2008 - 43 Hits - 2 Antworten

Blattschutz im Makro
joe2  18.09.2008 - 16 Hits - 1 Antwort

Makro trotz Blattschutz
Musby  27.01.2009 - 39 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026