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

Code erweitern / Monate abschliessen

Code erweitern / Monate abschliessen
20.12.2017 15:01:51
Pascal
Hallo Liebe Forumanen
Ich hoffe, jemand von Euch kann mir hier kurz weiterhelfen.
und zwar:
Ich habe eine Arbeitsmappe mit unzähligen Tabellenblätter. Die Tabellenblätter tragen die Monate "Januar 2017", "Februar 2017" usw.
Es gibt Tabellenblätter bis und mit "Dezember 2018"
Pro Tabellenblatt kann jeder Benutzer verschiedene Daten eintragen.
Nun hab ich vor Kurzem hier im Forum gefragt, ob es eine Möglichkeit gibt, diese Arbeitsmappe mittels einem Makro zu versehen, dass mir beim Öffnen der Mappe folgendes macht:
Alle Tabellenblätter des Vormonats sollen mittels einem Password versehen- und komplett für jegliche Änderungen geschützt werden.
Ich habe da im Forum folgenden Super Code erhalten, der auch bestens funktioniert:
'Code muss in DieseArbeitsmappe
Private Sub Workbook_Open()
Dim TB, PW As String
Dim Monatsende As Date
'Blattname in der Form: "Dezember 2017"
PW = "ABC"
For Each TB In ThisWorkbook.Sheets
If IsDate("10." & TB.Name) Then 'Ist Blattname ein Monat
Monatsende = Application.EoMonth(DateValue("01." & TB.Name), 0)
If Monatsende 

Nun müsste aber leider dieser Code so angepasst werden, dass er mir immer am 10. des laufenden Monats alle Tabellenblätter inkl. der laufende Monat und der Folgemonat abschliesst.
als Beispiel:
am 10. Dezember 2017 müsste es also alle Tabellenblätter bis und mit Januar 2018 abschliessen.
kann ich den obigen Code entsprechend so einfach anpassen ?
für Eure Hilfe HERZLICHEN DANK !

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code erweitern / Monate abschliessen
21.12.2017 20:28:55
Gerd
Moin Pascal!
Private Sub Workbook_Open()
Dim TB As Object, PW As String
'Blattname in der Form: "Dezember 2017"
PW = "ABC"
For Each TB In ThisWorkbook.Sheets
If IsDate("10." & TB.Name) Then 'Ist Blattname ein Monat
If Date >= DateSerial(Year(TB.Name), Month(TB.Name) - 1, 10) Then
TB.UsedRange.Cells.Locked = True 'Zellen schützen
TB.Protect Password:=PW, UserInterfaceOnly:=True 'Blatt schützen
End If
End If
Next
MsgBox "Vormonat(e) geschlossen"
End Sub

Gruß Gerd
AW: Code erweitern / Monate abschliessen
22.12.2017 06:06:03
Pascal
Guten Morgen Gerd
Herzlichen Dank für Deine tolle und rasche Hilfe
werde das gleich mal ausprobieren.
Grüss Dich und hab frohe Festtage:
Pascal
Anzeige
AW: Code erweitern / Monate abschliessen
22.12.2017 06:52:00
Pascal
Guten Morgen Gerd
ich nochmals...
habe nun den Code in meine Arbeitsmappe integriert und getestet.
Problem ist nun ...
wenn die Mappe mal geöffnet wurde (und das Makro durchgelaufen ist) und gespeichert wird, so wird dann beim nächsten Öffnen durch das Makro ein Fehler ausgegeben, da diverse Tabellenblätter schon schreibgeschützt sind.
Makro bleibt dann bei der Zeile
TB.UsedRange.Cells.Locked = True 'Zellen schützen
stehen.
was kann/muss ich also noch ergänzen ?
AW: Code erweitern / Monate abschliessen
22.12.2017 07:46:37
Gerd
Moin Pascal,
ich hege die Vermutung, dass bei dir vorher nichts geschützt worden ist, sonst hättest du dieses
Problemchen schoh vorher gehabt. :-)
Schreibe als erste Bedingung in die Schleife:
If Not TB.ProtectContents Then
und ein weiteres "End If" direkt über Next.
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige