Pfiffige Alternative

Microsoft Project – VBA-Erweiterung für übersichtliche Abwesenheitsplanung

Für die Abwesenheitsplanung von Mitarbeitern stellt Microsoft Project eine passgenaue Funktion bereit: Die Definition von "Kalenderausnahmen". Was dieser jedoch fehlt, ist eine zentrale Übersicht, um die Abwesenheiten aller Mitarbeiter gleichzeitig zu sehen. Abhilfe schafft ein per VBA-Code erzeugter Team-Kalender, mit dem Sie Abwesenheiten komfortabel überblicken und verwalten können. Markus Rupprecht stellt die von ihm selbst entwickelte Lösung vor und erklärt, wie Sie den Code installieren.
Pfiffige Alternative

Microsoft Project – VBA-Erweiterung für übersichtliche Abwesenheitsplanung

Für die Abwesenheitsplanung von Mitarbeitern stellt Microsoft Project eine passgenaue Funktion bereit: Die Definition von "Kalenderausnahmen". Was dieser jedoch fehlt, ist eine zentrale Übersicht, um die Abwesenheiten aller Mitarbeiter gleichzeitig zu sehen. Abhilfe schafft ein per VBA-Code erzeugter Team-Kalender, mit dem Sie Abwesenheiten komfortabel überblicken und verwalten können. Markus Rupprecht stellt die von ihm selbst entwickelte Lösung vor und erklärt, wie Sie den Code installieren.

Um einen realistischen Terminplan zu erstellen, ist es nicht nur notwendig, das Vorhaben in passende Arbeitspakete zu schneiden, deren Aufwand zu schätzen und geeigneten Teammitgliedern zuweisen. Zusätzlich benötigen Sie auch noch Informationen zu Arbeitszeiten und Abwesenheiten der einzelnen Teammitglieder.

Um Abwesenheiten bei der Planung zu berücksichtigen, gibt es verschiedene Ansätze in Microsoft Project, die Renke Holert im Artikel "Microsoft Project – So planen Sie die Abwesenheitszeiten Ihrer Mitarbeiter" (Projekt Magazin, Ausgabe 13/2016) beschrieben und gegeneinander abgewogen hat. Gängige Ansätze sind "Kalenderausnahmen", "administrativen Zeiten" und "Sonderprojekte".

Umständlicher Standard

Mit der Definition von "Kalenderausnahmen" stellt Project eigentlich eine passgenaue Funktion zur Abwesenheitsplanung bereit: Arbeitsfreie Zeiten, wie z.B. Urlaube, Weiterbildungszeiten etc., können Sie über den Dialog "Arbeitszeit ändern" im Ressourcenkalender der jeweiligen Mitarbeiter eintragen (Bild 1). Diese Ausnahmen im Arbeitszeitkalender berücksichtigt Microsoft Project bei der Terminplanung automatisch.

Bild 1: Arbeitsfreie Zeiten lassen sich über den Standard Dialog "Arbeitszeit ändern" im Ressourcenkalender eintragen.
Bild vergrößern

Leider hat diese Funktion einen entscheidenden Haken: Sie bietet keine zentrale Übersicht, um die Abwesenheiten aller Mitarbeiter gleichzeitig zu sehen. Mögliche Engpässe bei Urlaubsanträgen sind daher nur schwer erkennbar. Zudem ist es umständlich, Abwesenheiten mit dieser Funktion zu pflegen. Viele Projektleiter verzichten daher darauf, Abwesenheiten als Kalenderausnahmen zu planen.

VBA-Lösung: Team-Kalender sorgt für Überblick

An diesem Punkt setzt die hier vorgestellte Lösung an: Sie erweitert die Benutzerschnittstelle von Project per VBA-Code um einen Teamkalender, der alle Abwesenheiten der Teammitglieder übersichtlich anzeigt (Bild 2). Gleichzeitig stellt die Lösung einfach zu bedienende Verwaltungsfunktionen zur Verfügung, um Einträge zu erstellen, zu ändern und zu löschen. Entwickelt wurde die Lösung ursprünglich für Microsoft Project 2007. Erfolgreich getestet wurde sie jedoch auch mit Project 2010 und 2013. Wer auf einen integrierten Genehmigungsprozess und benutzerdefinierte Felder verzichten kann, findet mit der vorgestellten VBA-Lösung eine gute Alternative zur Standardfunktion. Die Eingabe über den Standardweg ist weiterhin möglich.

Bild 2: Die VBA-Lösung ergänzt die Standard-Funktion um einen Terminkalender zur Abwesenheitsplanung.
Bild vergrößern

Aufbau des Team-Kalenders

Der per VBA-Code erzeugte Team-Kalender zeigt eine Übersicht aller bekannten Abwesenheiten in einem bestimmten Zeitraum an (Bild 2). Den Zeitraum können Sie durch die Buttons "Back" und "Forward" auf den Vor- bzw. Folgemonat verschieben oder mit Hilfe von zwei weiteren Buttons auf einen beliebigen Starttag festlegen bzw. auf den aktuellen Tag als Starttag umschalten. Standardmäßig wird beim Öffnen des Dialogs immer der Erste des aktuellen Monats als Starttag herangezogen.

Der Datenbereich besteht aus Zeilen für jede in der Project Datei angelegte Ressource. Zusätzlich werden die Basiskalender dargestellt, die bei den Ressourcen hinterlegt sind. So lassen sich Brückentage einfacher erkennen. An oberster Stelle werden die genutzten Basiskalender gelistet, darunter die Ressourcen in der Reihenfolge, in der sie in der Ressourcentabelle gelistet sind. Als Spalten werden 31 Tage dargestellt, wobei Samstage und Sonntage grau hinterlegt sind.

Abwesenheitszeiten editieren

Die Abwesenheiten erscheinen als rote Balken. Wenn Sie mit dem Mauszeiger über den Balken fahren, erscheint der zugehörige Abwesenheitstext, sowie Start- und Enddatum der Abwesenheit. Klicken sie auf einen der Balken, können Sie diese Abwesenheit editieren oder löschen (Bild 3).

Bild 3: Editieren eines Abwesenheitseintrags

Eine neue Abwesenheit erstellen Sie über den Button "Add". Es erscheint ein Eingabedialog (Bild 4), in welchem Sie zunächst die Ressource bzw. auch den Basiskalender auswählen müssen. Anschließend können Sie den Start- und Endtag der Abwesenheit setzen sowie den Grund der Abwesenheit als Kommentar eingeben (z.B. "Urlaub" oder "Seminar" etc.). Der VBA-Code trägt die Abwesenheit dann als Kalenderausnahme in den angegebenen Kalender ein und zeigt sie im Übersichtsfenster als neuen Balken an, sofern der dargestellte Zeitbereich entsprechend gewählt ist.

Bild 4: Neuanlage eines Abwesenheitseintrags

Die Datumsauswahl erfolgt immer über ein eigenes Fenster (Bild 5), um Fehleingaben von vornherein zu vermeiden. Dort können Sie schnell auf andere Jahre oder Monate umschalten.

Bild 5: Das Datum mithilfe eines Kalenders auswählen.

VBA-Lösung in eigener Datei installieren

Bewertungen und Kommentare

(nur angemeldete Benutzer)

Diese Funktion steht nur eingeloggten Nutzern zur Verfügung. Jetzt einloggen
Gesamt
Bewertungen 1
Kommentare 9

Alle Kommentare

Reiner
Claus
Hallo! Ich arbeite mit Project 2013 und habe das VBA Programm einmal eingebaut um zu sehen, welche Vorteile mir dadurch entstehen. Ich bin genau der Anleitung entlang gegangen...bekomme aber immer eine Fehlermeldung im Debugger bei Module: Sub showCalendar() Absences_ResCalendar.Show End Sub Er markiert mir die zweite Zeile (Absences_......) Hat jemand hier eine Idee, was falsch läuft? Danke im Voraus Gruß Reiner Claus
Markus
Rupprecht
Hallo, öffne mal mit Alt-F11 den VBA-Editor. Dort solltest Du in dem Projekt zu Deiner Datei einen Ordner "Formulare" sehen und da drinnen sollte unter anderem das Modul "Absences_ResCalendar" enthalten sein. Falls nicht, dann hast Du nicht alle Module kopiert, siehe Bild 7. Dann musst Du die Module nochmal über den Organisator in Deine Datei kopieren. Ich hoffe das hilft. Viele Grüße, Markus
Bernhard
Mühlberg
Hallo Herr Rupprecht, bei mir klappt der Download des ZIP-Files nicht. Bin noch in der Probephase. Kann das das Problem sein?
Guest
Hallo Herr Mühlberg, im Probeabo können Sie zwar alle Artikel lesen, haben aber nicht die Möglichkeit, sie herunterzuladen. Viele Grüße Lena Pritzl (Redaktion)
Bernhard
Mühlberg

Antwort auf von Gast (nicht überprüft)

Und wenn ich diesen Artikel kaufe (für 4,50€), ist dann ein Download möglich?
Guest
Wenn Sie den Artikel kaufen, ist der Download selbstverständlich möglich.
Bernhard
Mühlberg
wie kann ich das machen?...War am Mittwoch auf dieser Seite zum Bezahlen, bin aber mit meiner Kreditkarte gescheitert (warum auch immer) und wollte es jetzt mit Sofortzahlung mit meiner EC-Karte versuchen. Danke
Guest
Hallo Herr Mühlberg, ich habe Ihre Anfrage an unsere Aboverwaltung weitergeleitet, mein Kollege meldet sich dazu bei Ihnen.
Bernhard
Mühlberg
Telefon ist jetzt auch enthalten....sollte so einfacher sein.
Alle anzeigen