Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA

Forumthread: VBA

VBA
13.12.2024 11:23:47
Mondenkind
Hallo Forumsmitglieder,
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

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA
13.12.2024 11:33:41
Yal
Hallo Mond (man spricht sich im Forum per Vorname an ;-)

wechsle zu Office 365 und erlebe die richtige Parallelarbeit: da können mehrere Kollegen dieselbe Blatt gleichzeitig bearbeiten. Jeder sieht, welche Zelle von einem anderen gerade bearbeitet wird. Es ist eine Sperre pro Zelle und nicht pro Datei.

Zu versuchen, in einer 8 Jahre alte Version die Entwicklungen nachzubauen, die inzwischen stattgefunden haben, ist zwar löblich, aber nicht unbedingt sinnvoll.

VG
Yal
Anzeige
AW: VBA
14.12.2024 03:08:30
Piet
Hallo

bitte probiere mal den Code aus, vielleicht hilft der euch weiter.
Hier wird immer nur die Zelle gesperrt, die gerade bearbeitet wurde. Alle anderen bleiben frei.

mfg Piet

Private Sub Worksheet_Change(ByVal Target As Range)

If InStr(Target.Address, ":") Then Exit Sub
If Target.Value = Empty Then Exit Sub

If Not Intersect(Target, Range("B4:H18")) Is Nothing Then
ActiveSheet.Unprotect ("Passwort")
Target.Locked = True
ActiveSheet.Protect ("Passwort")
End If
End Sub
Anzeige
AW: VBA - Sorry, da ist mein Latein zu Ende ... oWt
16.12.2024 17:54:08
Piet
...
AW: VBA
14.12.2024 08:48:39
Mondenkind
Vielen Dank schon mal Piet, werde ich am Mo. gleich mal ausprobieren, wenn der Dienstbetrieb es zulässt (muss ich ja am Dienstrechner machen). Ich melde mich dann und sag Dir, ob es geklappt hat. Viele Grüße, Sly
AW: VBA
14.12.2024 11:16:58
Piet
Hallo

würde mich echt freuen wenn ihr damit weiterkommt. Ich wünsche es euch von Herzen.
Mal unter uns, sicher ist es schön eine moderne Excel Version zu haben. Freut mich für die Kollegen.
Mit 74 ist man bescheiden, und arbeitet mit dem was man hat.

Ich arbeite zur Zeit mit Excel 2016, aber nur in Izmir! In Köln habe ich einen Uralten Laptop, XP, mit Excel 2003.
Ich habe auch noch das alte Excel 7 Programm auf diesem Rechner. Fazit, man kann mit jeder Version arbeiten.
Sicher ist ein modernes Auto besser als ne alte Gurke. Aber die alten Gurken konnt man noch selbst reparieren!

mfg Piet
Anzeige
AW: VBA
16.12.2024 15:17:00
Mondenkind
So Piet, habe es ausprobiert. Leider funktioniert es auch nicht so, wie ich es gerne hätte. Mein Kollege und ich hatten die freigegeben Mappe zeitgleich offen. Erst hat er seinen Eintrag gemacht und bekam sofort eine Fehlermeldung. Nach dem er auf ok klickte, stand sein Name trotzdem in der Zelle. Als ich dann an gleicher Stelle meinen Namen eingetragen hab, bekam ich zunächst dieselbe Fehlermeldung. Anschließend auf ok geklickt. Nun öffnete sich ein Kollisionsfenster, welches mir mitteilte, dass Zelle z.B. F7 - frei - jetzt mein Name hat, aber ebenso in der Zelle F7 - frei - auch der Name meines Kollegen eingetragen wurde. Ich konnte jetzt wählen, ob mein Eintrag beibehalten wird oder der meines Kollegen. Ich will ja verhindern, dass ich überhaupt noch eine Eintragung vornehmen kann, wenn ein anderer die Zelle vor mir "belegt" hat und dass etwaige Eintragungen der Kollegen mir nach dem Speichern sofort angezeigt werden.
Solange diese Arbeitsmappe nicht freigegeben war, brauchte man diese Sperre nicht, da jeder nur einzeln nacheinander die Liste aufrufen, Einträge vornehmen und logischer Weise die Änderung vom Vorgänger sehen kann. Aber da wir ja immer das Problem haben, daß diese Mappe öfters mal für einige Zeit gesperrt bleibt, wollte ich das Problem mit der Freigabe umgehen. Nun muß aber natürlich verhindert werden, dass sich 2 Leute gleichzeitig für denselben Dienst eintragen... Als heißt´s weiter rumfummeln. Solange wird die Liste halt nicht freigegeben.
Gruß, Sly
Anzeige
AW: VBA
13.12.2024 12:44:25
Mondenkind
Vielen Dank für Deine Antwort snb. Die schau ich mir doch gleich mal an und probiere mich aus.
VG, Silvia
AW: VBA
13.12.2024 11:40:37
Mondenkind
Hallo Yal,

leider habe ich keinen Einfluss auf die Excelversionen, die mir mein Arbeitgeber zur Verfügung stellt. Ich muß mich mit dem begnügen, was man mir gibt ;-)
Also quäle ich mich durch 2016er Version...
Gruß, Silvia
Anzeige
AW: VBA
13.12.2024 12:07:23
Mondenkind
Aber vielleicht kennt sich noch jemand mit den alten Versionen aus und kann mir helfen.
VG Silvia
AW: VBA
13.12.2024 13:24:16
Yal
Hallo Silvia,

eine VBA-Lösung wird in 2016 und 365 keine Unterschied haben. Das Problem liegt eher daran, dass Microsoft sich sehr viel Gedanken gemacht hat, welche Schmerzen ihre Anwender haben, die jeder lokal mit irrsinnige VBA-Krücken lösen musste und daraus Funktionalitäten in den neuen Version eingebaut hat.

Mache eine schnelle Zusammenstellung der Zeiten (mal Kosten pro Stunde), die Du damit verbringen wird, eine suboptimale Lösung aufzubauen (und den Kollegen beizubringen) und der Zeiten, wo Du doch das Schiefgelaufenes bereinigen müssen wird, weil das Ding eh nicht durchgedacht ist, dann hast Du eine wirtschaftliche Grundlage dein Arbeitgeber zu überzeugen, mit der Zeit zu gehen.

Es soll keine Werbung für Microsoft sein, aber eine Batterie und Elektromotor auf einem 8 Jahre alten Benziner zu bauen, macht bei der heutige Verfügbarkeit an Elektrofahrzeug genauso wenig Sinn.

VG
Yal
Anzeige
AW: VBA
14.12.2024 08:43:58
Mondenkind
Hallo Yal,
Ich verstehe Deine Argumentation voll und ganz. Ich wollte hier auch eigentlich nur mein Problem schildern, ohne weit auszuholen. Aber die Geschichte zu dieser Mappe ist lang. Ich versuche es mal kürzer: Diese Art Arbeitsmappe wurde 2015 von einem excelversierten Kollegen erstellt, der schon lange nicht mehr bei uns ist. Diese Mappe wurde durch einen Planer von uns umständlich Jahr für Jahr am Laufen gehalten, der nun auch nicht mehr da ist, mich aber eingewiesen hat. Meinem neuen Chef passte es nicht, dass ich die einzige bin, die diese Mappe bearbeiten kann und bat mich einen neuen Dienstplan zu erstellen, der einfach und auch ohne Excel Kenntnisse zu bedienen ist. Hab ich 2019 mehrere Versionen gemacht. Aufschrei in der überalterten Bevölkerung bei uns. Sie möchten den alten Plan wiederhaben! Also habe ich mit Hilfe Excel 2016 den alten Plan nachgebaut. Dynamischer Wochenkalender oben, Mitarbeitertabelle darunter. Alle Blätter verknüpft, so dass lediglich auf dem 1. Blatt wenige Änderungen vorgenommen werden müssen und der Plan fürs nächste Jahr komplett steht.
Warum 52. einzelne KW Blätter? Die Kollegen müssen sich mindestens 3 Wochen im Voraus eintragen. Für jede Woche muss ein Ursprungsplan abgelegt werden (unverändert und recherchierbar) und einer wird für Änderungen am Schrank ausgehängt und später ebenfalls abgelegt. Warum eine Mitarbeitertabelle unter dem Wochenplan? Jeder hat dort 2 mit seinem Passwort geschütze Zeilen für diese Woche mit seiner Wochenplanung, damit niemand anderer an deren Planung was ändern kann (muss wohl schon vorgekommen sein). Mit Corona kam das HomeOffice, sodass ich noch ein paar Berechnungsspalten in jede Woch eingebaut habe (Mindeststärke, max. Anzahl HomeOffice pro Woche, etc.). Ich habe nur Excel 2016 zur Verfügung. Ob und wann Excel 360 kommt, steht in den Sternen. Ich hoffe, ich konnte Dir meine Misere anschaulich darstellen!?
Anzeige

Forumthreads zu verwandten Themen

Anzeige