Herbers Excel-Forum - das Archiv
Blattschutz für mehrere Dateien
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Blattschutz für mehrere Dateien
von: Marcel
Geschrieben am: 22.12.2006 09:23:50
Hallo,
ich nutze Excel 2002 und möchte für einige Dateien (die ggf. mehrere Tabellenblätter haben) einen Blattschutz einfügen. Da es relativ viele Dateien sind, möchte ich die Eingabe des Blattschutzes gerne automatisieren. Geht so etwas? Wenn Ja, wie?
Vielen Dank für Eure Hilfe.
Marcel
Betrifft: AW: Blattschutz für mehrere Dateien
von: Heinz H
Geschrieben am: 22.12.2006 09:52:58
Hallo Marcel
Ich habe in meiner Mappe es so gemacht.
In einem Tab.Blatt 2 Command Button gesetzt.
Command Button 1 Setzt den Blattschutz.
Command Button 2 hebt den Schutz wieder auf.
ABER OHNE PASSWÖRTER:
Gruß Heinz
Private Sub CommandButton1_Click()
'Sub Blattschutz_alle_Tabellen_gesetzt()
Dim i As Worksheet
Dim z As Integer
z = 0
For Each i In ActiveWorkbook.Worksheets
i.Protect
z = z + 1
Next i
'MsgBox z & " Tabellen geschützt"
End Sub
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
'Sub Blattschutz_alle_Tabellen_aufheben()
Dim i As Worksheet
For Each i In ActiveWorkbook.Worksheets
i.Unprotect
Next i
End Sub
Betrifft: AW: Blattschutz für mehrere Dateien
von: haw
Geschrieben am: 22.12.2006 10:09:39
Hallo Marcel,
hier eine Möglichkeit in allen Dateien des angegebenen Ordners und seiner Unterordner alle Tabellenblätter mit einem Passwort zu schützen.
Zum Aufheben des Schutzes einfach Protect durch Unprotect ersetzen:
Sub BlattschutzSetzen()
Dim sSource$, iCount%, iCounter%
Dim wks As Worksheet
sSource = "C:\Daten\"
With Application.FileSearch
.NewSearch
.LookIn = sSource
.Filename = "*.xls"
.SearchSubFolders = True
.Execute
iCount = .FoundFiles.Count
For iCounter = 1 To iCount
Workbooks.Open Filename:=.FoundFiles(iCounter)
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:="xxx"
Next wks
ActiveWorkbook.Close True
Next iCounter
End With
End Sub
Gruß Heinz
Betrifft: AW: Blattschutz für mehrere Dateien
von: Marcel
Geschrieben am: 22.12.2006 11:20:13
Hallo,
vielen Dank für Eure Antworten.
Ich habe noch einmal nachgesehen, der Blattschutz liegt schon vor, ich müßte "nur" noch die Passwörter vergeben.
Wie sieht dann das Script von Heinz aus und was muss ich noch manuell anpassen (z.B. den Pfadnamen)?
Viele Grüße.
Marcel
Betrifft: AW: Blattschutz für mehrere Dateien
von: haw
Geschrieben am: 22.12.2006 11:26:27
Hallo Marcel,
Sub BlattschutzSetzen()
Dim sSource$, iCount%, iCounter%
Dim wks As Worksheet
sSource = "C:\Daten\"
With Application.FileSearch
.NewSearch
.LookIn = sSource
.Filename = "*.xls"
.SearchSubFolders = True
.Execute
iCount = .FoundFiles.Count
For iCounter = 1 To iCount
Workbooks.Open Filename:=.FoundFiles(iCounter)
For Each wks In ActiveWorkbook.Worksheets
wks.Unprotect
wks.Protect Password:="xxx"
Next wks
ActiveWorkbook.Close True
Next iCounter
End With
End Sub
Hier einfach den Pfad unter sSource und das Passwort (dein Passwort anstatt xxx) anpassen
Gruß Heinz
Betrifft: AW: Blattschutz für mehrere Dateien
von: Marcel
Geschrieben am: 22.12.2006 11:38:45
Hallo Heinz,
super vielen Dank. Jetzt muss ich mich noch mehr als Laie outen. Gebe ich die Befehle als Makro in einer der Dateien ein, oder wo? Ich möchte ja mehrere Dateien eines Pfades gleichzeitig ändern.
Marcel
Betrifft: AW: Blattschutz für mehrere Dateien
von: haw
Geschrieben am: 22.12.2006 11:45:05
Hallo Marcel,
den Code gibst du in den Visual Basic Editor ein. In diesen kommst mit Alt und F11.
Du änderst die entsprechenden Strings (Pfad, Passwort)
Du setzt den Cursor in den Code und drückst die Taste F5. Dadurch wird das Makro gestartet. Wenn du einen gültigen Pfad eingegeben hast, wird in allen Excel-Dateien (wegen .Filename = "*.xls") jede Tabelle mit dem angegebenen Passwort geschützt. Sollten aber Dateien dabei sein, in denen es Tabellen gibt, die mit einem Passwort geschützt sind, entsteht ein Laufzeitfehler, aber laut deiner Aussage, sind ja alle ohne Passwort geschützt.
Gruß Heinz
Betrifft: AW: Blattschutz für mehrere Dateien
von: Marcel
Geschrieben am: 22.12.2006 12:00:14
Hallo Heinz,
vielen Dank und viele Grüße.
Marcel