VBA
13.12.2024 11:23:47
Mondenkind
ich bin fleißiger Excel Schüler und taste mich so langsam an die VBA heran... und schon stecke ich fest!
Ich habe einen Dienstplan (Wochenplan) entworfen. Es ist eine Arbeitsmappe mit insgesamt 52 Arbeitsblättern (52. KW´s). Jedes Arbeitsblatt besteht aus 2 Tabellen. Die obere stellt die aktuelle Woche dar. B3= Montag - Hr= Sonntag. Im Bereich B4:H18 können die Kollegen ihre Namen über eine Dropdownliste auswählen und sich für die in Spalte A ausgeworfenen Dienste eintragen. Der Plan liegt auf einem Server, zudem alle Kollegen Zugriff haben. Nun haben wir in unregelmäßigen Abständen das Problem, dass dieser Dienstplan immer mal wieder trotz speichern und schließen eine Zeit lang gesperrt bleibt. Die zuletzt in der Tabelle gewesenen Kollegen werden dann immer angesprochen, bitte noch mal rein und raus, PC hoch und runterfahren, etc. Trotzdem bleibt diese Liste manchmal über Tage gesperrt. Soll ein Serverfehler sein.
Nun dachte ich, ich umgehe dieses Problem, indem ich die Arbeitsmappe freigebe. Klappt super, aber es muss nun natürlich verhindert werden, dass sich zwei Leute, die zur gleichen Zeit in dem Plan sind, für den selben Dienst (also in der selben Zelle) eintragen! Hab im Netz recherchiert und folgende VBA Formel "stibitzt":
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
Set Target = Intersect(Target, Range("B4:H18"))
If Target Is Nothing Then Exit Sub
Me.Unprotect ("Passwort")
For Each rngCell In Target
rngCell.Locked = rngCell > ""
Next
Me.Protect ("Passwort")
End Sub
Haben wir gleich mal ausprobiert... Zwei Kollegen zeitgleich in diesem Plan und beide tragen sich für den selben Dienst ein...
Das Resultat: Wir können zwar beide ohne das Passwort nichts mehr ändern oder löschen, aber auf meinem Plan an meinem PC steht mein Name, auf dem Plan meines Kollegen sein Name. Wir haben den Plan dann gespeichert, geschlossen und wieder geöffnet. Aber es hat sich nichts geändert. Er steht auf seinem Plan auf diesem Dienst und ich auf meinem Plan. Das war aber so eigentlich nicht gedacht. Gibt es da noch eine Anpassung bei der Formel oder geht eine Sperrung gar nicht bei freigegebenen Arbeitsmappen?
Anzeige