Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellenblatt nach einem bestimmten Datum automatisch sperren
#1
Lightbulb 
Hallo, 

ich habe folgendes Problem:
Zur Datei: Die Mitarbeiter bei mir auf Arbeit müssen einen Arbeitszeitnachweis ausfüllen, in dem sie auch aufteilen müssen in welchen Projekten sie wie lange pro Tag gearbeitet haben. Für jeden Monat ist ein Tabellenblatt vorgesehen. Viel berechnet sich durch Formeln selber, zum Beispiel die Anzahl der Arbeitstage, die Anzahl der gearbeiteten Stunden, Pausenzeiten usw. Diese Felder sind auch gesperrt, so dass die Mitarbeiter recht wenig in der Datei verändern und so kaputt machen können. Nun sind aber ein paar Zellen nicht gesperrt und somit beschreibbar (kommt-geht-zusätzliche Pausen und die Projekte sowie die Anzahl der Urlaubs- und Krankentage). 

Mein Anliegen lautet jetzt: wie bekomme ich es hin, dass jeweils am 10. des Folgemonats das vorherige Tabellenblatt komplett gesperrt wird? Also am 10.02. soll der Januar gesperrt werden usw. Die bereits gesperrten Zellen sollen gesperrt bleiben und die, die bisher beschreibbar waren, sollen nun auch gesperrt sein, damit Mitarbeiter im Verlauf des Jahres nicht rückwirkend etwas in ihrer Datei ändern können. Am Besten wäre es, wenn ich den Schutz per VBA Knopfdruck ausschalten kann, da ich die Werte weiterverarbeiten muss. So einen Knopf habe ich bereits, der die ganze Datei freischaltet. 

Info: Ich habe diese Datei nicht selber erstellt und habe auch leider überhaupt keine Ahnung von VBA. Es sind schon etliche Makros erstellt, von denen ich ungefähr weiß, was sie machen sollen, aber da ich kein Programmierer bin, auch nicht so richtig. Daher wüsste ich auch nicht, wo ich so ein Makro rein schreiben müsste, damit sich die Blätter automatisch schließen. 

Ich habe das Internet schon nach etlichen Lösungen durchsucht und versucht etwas davon umzusetzen, aber nichts hat wirklich funktioniert. Daher hoffe ich, dass mir hier ein paar schlaue Köpfe helfen können und bin für jeden Hinweis dankbar. 

Eine Beispieldatei habe ich angehängt. Die Excel Version ist Office Professional Plus 2016

Das Passwort für die Blätter und die Mappe lautet: qwertz1337

Vielen Dank im Voraus!


Angehängte Dateien
.xlsm   Test Locked Workbook.xlsm (Größe: 272,65 KB / Downloads: 5)
Antworten Top
#2
Hallo


so???


Code:
Private Sub Workbook_Open()
   ' Wir überprüfen, ob zuletzt in einem anderen Monat gespeichert wurde.
   ' Falls ja, wird der Benutzer daran erinnert, seine Tabelle an die Verwaltung zu schicken.
   Dim Jetzt, Sonst As String, Lastmonth  As String, RNG As Range
   Jetzt = Range("Datenblatt!P21")
   Sonst = Range("Datenblatt!P22")
   Lastmonth = Format(DateAdd("m", -1, Date), "MMM")
   
   'Die offenen Zellen
   Set RNG = Sheets(Lastmonth).Range("C12:D42,G12:G42,J12:J42")
   
   If Jetzt <> Sonst Then
       MsgBox "Es fand ein Monatswechsel statt." & vbNewLine & vbNewLine & _
              "Bitte denken Sie daran, Ihre Liste per Email an die Verwaltung zu senden.", _
              vbExclamation, "Monatswechsel"
             
       UnProtectMe ' Blattschutz aufheben
       Range("Datenblatt!P22") = Jetzt
       
       'Zusätzlich: Ab dem 10. des Monat dann auch die offenen Zellen schützen
       If Day(Date) >= 10 Then
           RNG.Locked = True
       End If
       ProtectMe ' Blattschutz einschalten
   End If
   
End Sub

Den RNG musst du ggf. noch anpassen

LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • Camachuela
Antworten Top
#3
Hallo,

Excel ist nicht dafür gemacht Daten gegen Änderungen zu schützen. Da es aber für jeden Monat ein Sheet gibt, was spricht dagegen, dieses Sheet einfach in eine andere Datei zu verschieben (Sheets(1).move)?

mfg
Antworten Top
#4
Hallo, 

vielen lieben Dank für deine schnelle Antwort. 
Ich habe deinen Code so versucht zu ersetzen. Aber es ist nichts passiert, eine Fehlermeldung kam aber auch nicht. 
Theoretisch müsste ja mit einsetzen des Schutzes dann alles bis August gesperrt sein und der September sich am 10.10. sperren. Es ist aber weiterhin alles, was bisher nicht gesperrt war, immer noch offen und änderbar.

Viele Grüße

Hallo, 

die Sheets können leider nicht verschoben werden, da das eine äußerst verzwickte Datei ist und wenn da ein Sheet fehlt, funktionieren andere Formeln und Verweise nicht mehr, die dann auch noch auf andere Dateien verweisen. Eigentlich ist das ganze System für den Müll und es müsste dringend was neues her. Eine andere Lösung gibt es bisher aber dafür nicht. 

Liebe Grüße
Antworten Top
#5
Hallo,

genau wie Fennek ... ich würde entweder die Monate ausblenden, oder das Blatt verschieben,
wenn wie gewünscht, der 10. eines Monats erreicht ist.
Das scheint mir momentan das Einfachste zu sein, jedenfalls wenn nichts dagegen spricht.
Ansonsten müßte man nochmal darüber nachdenken.

Hallo,

Zitat:Theoretisch müsste ja mit einsetzen des Schutzes dann alles bis August gesperrt sein und der September sich am 10.10. sperren. Es ist aber weiterhin alles, was bisher nicht gesperrt war, immer noch offen und änderbar.

... irgendwo in den Tiefen meiner Festplatten verstaubt eine Datei, Deinem Wunsch ziemlich nahekommend.
Ich werde mal schauen, ob ich das anpassen kann und dann hier einstellen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Camachuela
Antworten Top
#6
Hallo, 

theoretisch ist das auch am einfachsten. Aber bei 70 Mitarbeitern mit 70 Dateien in jeden Monat einzeln rein gehen und es ausblenden ist doch etwas zeitaufwendig. Oder gibt es für das ausblenden ein Makro?
Also praktisch dass sich das Blatt am 10. automatisch ausblendet. Dann könnte damit der Sperrschutz ja umgangen werden. 

Vielen Dank für Euer Brainstorming :)

Liebe Grüße
Antworten Top
#7
Hallo,

Zitat:Aber bei 70 Mitarbeitern mit 70 Dateien in jeden Monat einzeln rein gehen und es ausblenden ist doch etwas zeitaufwendig. Oder gibt es für das ausblenden ein Makro?

... also, ... wenn Du das mit Formeln gelöst haben willst, dann mußt Du auf Antworten der Formelmenschen warten.

Ich könnte das nur per VBA erledigen, und bin eigentlich auch davon ausgegangen, daß das so erwartet wird.
Wenn VBA nicht eingesetzt werden soll, darf, kann, kann ich leider nicht weiterhelfen.

Zitat:Dann könnte damit der Sperrschutz ja umgangen werden. 

Sorry, aber was Du damit sagen willst, habe ich nicht wirklich verstanden.
Aber grundsätzlich, in Excel ist kein Schutz sicher. Wenn wer darin unbedingt was ändern will, dann schafft der das auch.
Da nützt es auch nichts, wenn Du Dich mit 'ner Keule bewaffnet neben die Datei stellst.

Davon ab, was meinst Du mit dieser Aussage? Vielleicht reden wir ja aneinander vorbei. Was also meinst Du damit?

Hallo,

Zitat:Aber bei 70 Mitarbeitern mit 70 Dateien in jeden Monat einzeln rein gehen und es ausblenden ist doch etwas zeitaufwendig. Oder gibt es für das ausblenden ein Makro?

Du kannst auch ein einsames Makro starten und über dieses dann Deine 70 Dateien abarbeiten.
Das wäre das geringste Problem, denke ich
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#8
Hallo, 

vielen Dank für deine Antwort.

Zitat:Ich könnte das nur per VBA erledigen, und bin eigentlich auch davon ausgegangen, daß das so erwartet wird.
Wenn VBA nicht eingesetzt werden soll, darf, kann, kann ich leider nicht weiterhelfen.

Ich dachte schon, dass das nur über VBA lösbar ist. 

Zitat:Sorry, aber was Du damit sagen willst, habe ich nicht wirklich verstanden.
Aber grundsätzlich, in Excel ist kein Schutz sicher. Wenn wer darin unbedingt was ändern will, dann schafft der das auch.
Da nützt es auch nichts, wenn Du Dich mit 'ner Keule bewaffnet neben die Datei stellst.

Davon ab, was meinst Du mit dieser Aussage? Vielleicht reden wir ja aneinander vorbei. Was also meinst Du damit?

Okay, ich versuche es noch mal zu erklären: 
Ich habe eine Datei mit 12 Blättern, die je einen Monat darstellen. Diese Datei liegt auf einem Server auf den jeder Mitarbeiter in seinem Ordner Zugriff hat und täglich seine Arbeitszeit einträgt. In jedem Monat gibt es Zellen die für den Mitarbeiter schon gesperrt sind, damit er die Formeln nicht überschreiben kann und so die Berechnung zerschießt (z.B. die ausgerechnete Arbeitszeit). Einzelne Felder sind jedoch nicht gesperrt, weil diese Felder die Eingaben der Mitarbeiter erfordern um die Berechnungen in den gesperrten Zellen zu machen (kommt-geht-Pause etc.). 

Meine Idee war nun, ob man nach Ablauf eines bestimmten Datums genau diese nicht gesperrten Felder automatisiert noch sperren kann. Das scheint sich aber als ziemlich kompliziert zu gestalten und du hast erwähnt, dass man die Blätter ja auch einfach ausblenden könnte, damit die MA da nicht mehr ran kommen. Die Idee finde ich auch gut und bin vorher noch nicht drauf gekommen. Durch den schon integrierten Arbeitsmappenschutz ist die Mappe sowieso so geschützt, dass die MA nicht an die ausgeblendeten Blätter können. Daher war meine nächste Frage, ob denn eine VBA/Makro Lösung für das automatisierte Ausblenden am 10. eines jeden Monats möglich ist. 

Zitat:Du kannst auch ein einsames Makro starten und über dieses dann Deine 70 Dateien abarbeiten.

Das Problem ist, dass diese 70 Dateien in 70 Ordnern (jeder MA hat seinen eigenen Ordner in seiner eigenen Abteilung) befinden. Sonst wäre diese Idee auch super. 

Liebe Grüße
Antworten Top
#9
Zitat:Aber es ist nichts passiert, eine Fehlermeldung kam aber auch nicht. 

Es ist ja auch noch nicht der 10.


Zitat:Theoretisch müsste ja mit einsetzen des Schutzes dann alles bis August gesperrt sein und der September sich am 10.10. sperren. Es ist aber weiterhin alles, was bisher nicht gesperrt war, immer noch offen und änderbar.

Das Makro sperrt nur den Vormonat.

Die Anderen musst du einmalig von Hand sperren.


Ja, kannst ja am PC das Datum mal vorstellen....


LG UweD
Antworten Top
#10
Hallo,

Zitat:Durch den schon integrierten Arbeitsmappenschutz ist die Mappe sowieso so geschützt, dass die MA nicht an die ausgeblendeten Blätter können. Daher war meine nächste Frage, ob denn eine VBA/Makro Lösung für das automatisierte Ausblenden am 10. eines jeden Monats möglich ist. 

... hatte ich, glaube ich, doch schon mehrmals mit einem klaren "JA" beantwortet.
In VBA gibt es auch die Option "VeryHidden", setzt man diese Option ein, dann kann
man das nur per VBA wieder einblenden.

Zitat:Das Problem ist, dass diese 70 Dateien in 70 Ordnern (jeder MA hat seinen eigenen Ordner in seiner eigenen Abteilung) befinden. Sonst wäre diese Idee auch super. 


na und, ... dann ist der Code eben etwas aufwändiger und der Ablauf dauert ein wenig länger.

Ich habe das Gefühl, Du willst da nicht wirklich ran. Warum sagst Du das dann nicht deutlich?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste