Projektberatung: Shared Workbook OPS Excange (1)
24.07.2014 14:13:37
Kuttel
ich beabsichtige in einigen Tagen, ein Excel-Projekt zu starten, das aus meiner Sicht mit einem Shared Workbook realisiert werden muss. Diese Shared Workbooks sind ja nicht gerade einfach, insbesondere wenn sie Makros enthalten. Daher wäre ich sehr dankbar, wenn ich über dieses Forum hier einige Hinweise bekommen könnte.
Ich stehe am Anfang des Projekts und habe noch keine Datei angelegt. Mir geht es vornehmlich darum, das Konzept für eine Programmierung zu erstellen und meine Ideen dazu mit allen Interessierten auszutauschen.
Man stelle sich ein großes Gebäude vor, das über zwei "Hausmeistereien" verfügt - nennen wir sie OPS1 und OPS2. Über einige Vorgänge die so eine OPS veranlasst oder genehmigt soll auch die andere OPS informiert werden (Beispiel: Schweißarbeiten in Zimmer XY; oder Fahrstuhl XZ wegen Wartungsarbeiten gesperrt etc.)
Eine Excel-Datei soll dabei helfen, solche Informationen bidirektional auszutauschen: Wenn eine OPS einen Eintrag in einer Excel-Tabelle vornimmt, soll das - quasi in Echtzeit oder zeitnah - auf dem Bildschirm der anderen OPS erscheinen. Ich denke somit an ein Shared Workbook.
Das Shared Workbook sollte zwei explizite Zellbereiche enthalten. Ein Zellbereich ist für Einträge der OPS1 reserviert und ist durch Passwort geschützt, während ein anderer Zellbereich für Einträge der OPS2 reserviert ist. In Excel lässt sich ja einstellen, dass bestimmte User geschützte Zellbereiche auch ohne Eingabe eines Passworts bearbeiten können. Man könnte also je nach angemeldetem Benutzer einen solchen Zellbereich zuweisen. Sollte sich ein unbekannter Nutzer anmelden, müsste eine UserForm nach der Zugehörigkeit fragen (entweder OPS1 oder OPS2). Auf diese Weise könnte man vermeiden, dass der gleiche Zellbereich von 2 OPS zeitgleich beschrieben wird und Informationen untergehen, da sich ja nur eine Partei durchsetzen kann.
Bei Shared Workbooks werden Updates ja quasi "gezogen" indem die Mappe gespeichert wird. Eine Änderung der in OPS1 geöffneten Mappe bekommt man in OPS2 also nur mit, wenn die Mappe in OPS1 gespeichert wurde und die eigene Mappe in OPS2 speichert wird. Dies könnte über eine OnTime-Prozedur erfolgen, die die eigene Mappe z.B. jede Minute speichert. Hier wäre vielleicht sinnvoll, dass die beiden OPS ihre Datei zwar im gleich intervall aber um 30 Sekunden versetzt speichern.
Wäre es sinnvoll, darüber hinaus die Datei auch speichern zu lassen, wenn ein Datensatz eingegeben wurde (über SheetChange)?
Ein neuer Eintrag, der in der eigenen Mappe erscheint, sollte mit einem Klang (Abspielen einer Wav-Datei) erfolgen.
(Ein Teil des Quellcodes muss also in Abhängigkeit des Users (OPS1 oder OPS2) ausgeführt werden.)
Ein Eintrag kann bereits im Voraus erfolgen, d.h. dass der Eintrag erst nach Eintreten der Start-Zeit aktiv wird. (Eintrag bis dahin nur in grauer Schrift, ab dann in schwarzer Schrift und mit farbiger Hintergrundfarbe).
Der Zellbereich des Informationsaustausches sollte stets mit Datum und Zeit der letzten Aktualisierung überschrieben sein, damit ein Aufhängen des Programms erkannt werden kann.
Es sollte möglich sein, der Eintragung eines Ereignisses ein Verfallsdatum bzw. eine Verfallszeit zu geben (der Autor eines Ereignisses kann so eine Verfallszeit vergeben).
Nach Ablauf der Verfallszeit sollte der Eintrag sich deaktivieren (Schriftfarbe auf grau setzen) aber noch in der Liste des aktuellen Tages verbleiben. Nach Mitternacht könnten alle abgelaufenen deaktiven Einträge dann in einen bestimmten Zellbereich verschoben und für bestimmte Zeit dort archiviert werden bevor die Einträge irgendwann endgültig gelöscht werden (entweder nach vorgegebener Zeit oder manuell per Button "Archiv löschen" oder ähnliches)
Da beide OPS einen 24h-Betrieb haben, sollte die Datei dafür ausgelegt sein, über einen langen Zeitraum geöffnet zu sein.
Bei Schließen der Datei muss beachtet werden, dass das OnTime-Ereignis des automatischen Speicherns terminiert werden muss.
Perspektive: Zu einem späteren Zeitpunkt sollte dann die Einbindung der firmeneigenen Work-Permits erfolgen. Bei Ausfüllen z.B. einer Arbeitserlaubnis für Schweißarbeiten sollte dies automatisiert in die OPS-Austausch-Tabelle übernommen werden, so dass die Daten hier nicht nochmals eingetragen werden müssen.
Über Eure Gedanken und Erfahrungen würde ich mich freuen.
Gruß
Kuttel