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

Makro zur Sicherung der Arbeitsmappe

Makro zur Sicherung der Arbeitsmappe
21.08.2020 21:00:17
Robert
Hallo Ihr Exelfreunde!
Ich hätte mal wieder eine Anfrage mit der Bitte um Hilfe. Habe mir im Internet den folgenden _
Code zum sichern der Zellen bzw Arbeitsblätter gesucht. Er sollte allgemein gültig sein und _ funktionieren Aber bei mir tut sich garnichts. Er sollte Automatisch gehen. Was kann ich tun.

folgendes Makro kommt in das Codemodul der Arbeitsmappe. Es hebt in allen Tabellenblättern der   _
_
Arbeitsmappe nacheinander den Blattschutz auf, sperrt dann alle Zellen, die konstante Werte  _
enthalten und anschließend auch alle Zellen, die Formeln enthalten und setzt schließlich den Blattschutz wieder. Das Makro läuft bei jeder Speicherung der Arbeitsmappe automatisch ab.
Vorher muss sichergestellt werden, dass in allen Tabellenblättern der Mappe sämtliche Zellen  _
entsperrt werden. Standardeinstellung für die Zellen ist ja, dass sie gesperrt sind.
'#                  Code einfügen in:                  #
'#   das Klassenmodul der betreffenden Arbeitsmappe    #
________________________________________
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
'Alle Tabellenblätter der Arbeitsmappe abarbeiten
For Each ws In ThisWorkbook.Worksheets
With ws
'Blattschutz aufheben (Blattschutz ohne Passwort)
.Unprotect
'Zellen mit konstanten Werten (Zahlen, Text, Datumsangaben) sperren
.Cells.SpecialCells(xlCellTypeConstants).Locked = True
'Zellen mit Formeln sperren
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
'Blattschutz wieder setzen (Blattschutz ohne Passwort)
.Protect
End With
Next 'ws
End Sub
________________________________________
Es wäre schön wenn es in dem Code auch passage gäbe, wo ich händisch bestimmte Bereiche von Tabellenblättern einschreiben könnte, das sie ungesperrt blieben.
Für Eure Mühen danke ich im voraus.
MfG Robert

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zur Sicherung der Arbeitsmappe
21.08.2020 23:05:19
Marc
Hallo Robert,
am besten du löschst nochmal jeglichen Code aus deinen Mappen und Modulen.
Dann doppelklickst du links im VB Fenster auf "Diese Arbeitsmappe" und fügst einfach folgendes ein:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheets
'Alle Tabellenblätter der Arbeitsmappe abarbeiten
For Each ws In ThisWorkbook.Worksheets
With ws
'Blattschutz aufheben (Blattschutz ohne Passwort)
.Unprotect
'Zellen mit konstanten Werten (Zahlen, Text, Datumsangaben) sperren
.Cells.SpecialCells(xlCellTypeConstants).Locked = True
'Zellen mit Formeln sperren
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
'Blattschutz wieder setzen (Blattschutz ohne Passwort)
.Protect
End With
Next 'ws
End Sub
Wenn du noch einen bestimmten Bereich nicht gesperrt habe möchtest, würde ich das nicht über ein Makro sondern über den Menüpunkt "Überprüfen" --> "Benutzer dürfen Bereich bearbeiten" erledigen. Jegliche Bereiche, die du dort eingibst, werden beim Blattschutzsetzen ignoriert.
Gruß Marc
Anzeige
nicht verständlich ...
22.08.2020 00:08:41
Matthias
Hallo
Zitat:
am besten du löschst nochmal jeglichen Code aus deinen Mappen und Modulen.
Dann doppelklickst du links im VB Fenster auf "Diese Arbeitsmappe" und fügst einfach folgendes ein:

...
Warum soll er jeglichen Code löschen?
Dann aber den Code den er ja selbst gepostet hat wieder einfügen?
Ist total unlogisch. Dann braucht er diesen Code auch nicht löschen!
Oder hab ich da was übersehen?
Gruß Matthias
AW: nicht verständlich ...
23.08.2020 19:17:16
Marc
Hallo Matthias,
ich weiß zwar nicht, warum du so auf meinen Post reagierst, solltest ihn vorher aber nochmals genauer durchlesen...
Er hatte in seinem Code
Dim ws as Worksheet

was meines Wissens nicht funktionieren kann.
Weiterhin hat er, laut dem Code den er gepostet hat, das ganze in ein Klassenmodul eingefügt. War mir da nicht sicher wohin er das gepackt hatte - ergo Code nochmal löschen und in "Diese Arbeitsmappe" einfügen, in dem nun mal der Code fürs Öffnen und Schließen der Arbeitsmappe eingefügt werden muss.
Habe trotzdem gerne geholfen :)
Gruß Marc
Anzeige
AW: nicht verständlich ...
24.08.2020 15:49:22
Robert
Ich danke euch mnochmals allen. Habe jetzt den Code vom 22.08.2020 17.00 Uhr aus meinem Beitrag genommen. Starte in per "Call hast du nicht gesehen" Der geht ganz gut, ausser, das er am Anfang zum verschlüsseln nach dem Passwort fargt ubnd ich es eingeben muss. Mir wäre es lieber er würde beim Speichern, das Passwort verlangt und dann schon verschlüsselt starte.
LG Robert
AW: nicht verständlich ...
24.08.2020 21:58:43
Marc
Hallo Robert,
warum benötigst du denn überhaupt ein Passwort, wenn du es beim öffnen der Datei sowie so wieder automatisch entfernen möchtest :D
Entweder ich verstehe deine Fragestellung nicht richtig, oder ich stehe aufm Schlauch...
Gruß Marc
Anzeige
AW: nicht verständlich ...
24.08.2020 22:01:32
Marc
Entschuldige... Jetzt hab ichs :D
mach das am besten einfach so:
Private Sub Workbook_Open()
Dim ws As Worksheets
Dim strPassword As String
strPassword = "hier dein Passwort eingeben"
For Each ws In ThisWorkbook.Worksheets
.Protect strPassword
Next
End Sub

AW: Makro zur Sicherung der Arbeitsmappe
22.08.2020 01:52:53
Matthias
Hallo
So wäre es evtl. möglich ...
Dim ws As Worksheet
Dim FreeCells As Object
On Error Resume Next
Application.DisplayAlerts = False
'Alle Tabellenblätter der Arbeitsmappe abarbeiten
For Each ws In ThisWorkbook.Worksheets
With ws
'Blattschutz aufheben (Blattschutz ohne Passwort)
.Unprotect
'Zellen mit konstanten Werten (Zahlen, Text, Datumsangaben) sperren
.Cells.SpecialCells(xlCellTypeConstants).Locked = True
'Zellen mit Formeln sperren
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
'Blattschutz wieder setzen (Blattschutz ohne Passwort)
Set FreeCells = Application.InputBox("Bitte Zellen markieren die geändert werden dürfen", _
"Ausnahmen", , , , , , 8)
FreeCells.Locked = False
.Protect
End With
Next 'ws
Application.DisplayAlerts = True
Gruß Matthias
Anzeige
AW: Makro zur Sicherung der Arbeitsmappe
22.08.2020 17:00:10
Robert
Hallo Ihr lieben Exelfreunde. Danke erst mal für Eure Mühen.
Ich habe jetzt mal herumexperimentiert und bin auf diese gängige Lösung gestossen, welche auch funktioniert. Aber ich würde sehr gerne haben,
1. das sie mit dem Start der Arbeitsmappe als gesichert startet
2. Das drei Seiten dabei offen bleiben (jeweils nur spezielle Spalten, nicht die ganze).
Das entsperren des Restes kann wie es ist händisch laufen. Es wäre sehr schön wenn ihr mir _ dabei behilflich sein könntet. Ich wäre euch zu sehr großen Dank verbunden. Die Seiten würde ich mal ABG Nord, Zeitg.Werbg; Rausleger bennennen und die Spalten C1:C38, Z8:z129; B1:278.

Option Explicit
Public Sub ZeitgWerbg()
Dim objWorksheet As Worksheet
Dim strPassword As String
Do
strPassword = InputBox("Passwort eingeben:", "Passwort")
If StrPtr(strPassword) = 0 Then Exit Sub
If strPassword  vbNullString Then Exit Do
Loop
ThisWorkbook.Protect Password:=strPassword, Structure:=True, Windows:=True
For Each objWorksheet In ThisWorkbook.Worksheets
With objWorksheet
.Protect Password:=strPassword, UserInterfaceOnly:=True
.EnableOutlining = True
.EnableSelection = xlNoRestrictions
End With
Next objWorksheet
End Sub
Public Sub AlleFreilegen()
Dim objWorksheet As Worksheet
Dim strPassword As String
strPassword = InputBox("Passwort eingeben:", "Passwort")
If StrPtr(strPassword) = 0 Then Exit Sub
On Error GoTo Abbruch:
For Each objWorksheet In ThisWorkbook.Worksheets
With objWorksheet
.Unprotect Password:=strPassword
.Protect Password:=strPassword, UserInterfaceOnly:=False
.Unprotect Password:=strPassword
End With
Next objWorksheet
ThisWorkbook.Unprotect Password:=strPassword
Exit Sub
Abbruch:
MsgBox "Falsches Passwort", vbExclamation, "falsch"
End Sub
Danke für Eure Mühe und das Ihr mir eventuell Eure Kenntnisse zur Verfügung stellt.
LG Robert
Anzeige
AW: Makro zur Sicherung der Arbeitsmappe
22.08.2020 20:54:16
Robert
Hallo nochmal. Hat wirklich keiner eine Idee.
LG Robert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige