Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
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

Blattschutzeigenschaften mit Makro

Blattschutzeigenschaften mit Makro
17.04.2021 13:24:08
Björn
Hallo,
ich möchte mehrere Dateien in einem Ordner automatisiert mit Blattschutz versehen und wieder aufheben können. Das Passwort ist immer gleich.
Das Thema gab es schonmal hier:
https://www.herber.de/forum/archiv/1268to1272/1270826_Blattschutz_ueber_alle_ExcelDateien_eines_Ordners.html
Ich habe diese Lösung genommen:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit

Sub schutzAn()
protectAllSheets "E:\Forum", "DeinPasswort", True
End Sub

Sub schutzAus()
protectAllSheets "E:\Forum", "DeinPasswort", False
End Sub

Sub protectAllSheets(Directory As String, Password As String, Protection As Boolean)
Dim objWB As Workbook, objSH As Worksheet
Dim strFile As String, strDir As String
Dim lngCalc As Long
On Error GoTo ErrExit
With Application
.ScreenUpdating = False
.EnableEvents = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
strDir = IIf(Right(Directory, 1) = "\", Directory, Directory & "\")
strFile = Dir(strDir & "*.xls*", vbNormal)
Do While strFile  ""
If strDir & strFile  ThisWorkbook.FullName Then
Set objWB = Workbooks.Open(strDir & strFile, UpdateLinks:=False)
For Each objSH In objWB.Worksheets
If Protection Then
objSH.Protect Password
Else
objSH.Unprotect Password
End If
Next
objWB.Close True
End If
strFile = Dir
Loop
ErrExit:
With Err
If .Number  0 Then
MsgBox "Fehler in Prozedur:" & vbTab & "'protectAllSheets'" & vbLf & String(60, "_") & _
vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
"Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
.Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
"VBA - Fehler in Modul - Modul1"
.Clear
End If
End With
On Error GoTo 0
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
.DisplayAlerts = True
End With
Set objWB = Nothing
Set objSH = Nothing
End Sub

Wie kann ich das Marko erweitern? Bei einem Blattschutz kann ich manuell noch angeben, dass weiterhin "Zeilen formatieren" erlaubt ist. Wie kann ich das in dieses Makro einfügen?
Danke euch.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutzeigenschaften mit Makro
17.04.2021 13:31:38
onur
Du brauchst nur den Makrorecorder einzuschalten, einmal das Blatt normal sperren und entsperren, dann das selbe mit Zellformatierung.
Im Code siehst du den Unterschied.
AW: Blattschutzeigenschaften mit Makro
17.04.2021 13:54:48
Björn
Hallo onur
Danke für deinen Tipp. Das habe ich gemacht. ES ist dieser Code: AllowFormattingRows:=True
Ich hänge nun daran an welcher Stelle ich ihn einfügen muss.
AW: Blattschutzeigenschaften mit Makro
17.04.2021 14:05:41
Nepumuk
Hallo Björn,
da:

If Protection Then
objSH.Protect Password, AllowFormattingRows:=True
Else
objSH.Unprotect Password
End If
Gruß
Nepumuk
AW: Blattschutzeigenschaften mit Makro
17.04.2021 14:44:02
Björn
Super, Danke dir und euch.
AW: Blattschutzeigenschaften mit Makro
17.04.2021 14:28:09
onur

objSH.Protect Password, DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True

Anzeige
AW: Blattschutzeigenschaften mit Makro
17.04.2021 13:32:16
Beverly
Hi Björn,
benutze den Makrorekorder und zeichne deine gewünschten Einstellungen beim Blattschutz auf.

GrußformelBeverly's Excel - Inn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige