GULP >> GULP Knowledge Base >> Produkte & Technologien >> PowerTools für Projektmanager

MS Project: Kalender und Checklisten optimieren

Probleme mit dem Projektkalender gehören der Vergangenheit an, wenn Sie sich mit MS Projekt eingehender beschäftigen.

(August 2001)
Inhalt dieses Artikels:
Kalender-Manager
| Umwandlung Arbeitstage | Feiertagsberechnung | Checklisten-Manager | Anlegen von Checklisten | Alle Screenshots auf einen Blick | Alle Listings auf einen Blick

Quelle: VBA Magazin

Ihre Meinung zum Artikel
sehr gut
1
2
3
4
5
6
schlecht
 

MS Project 2000 ist ein leistungsfähiges Werkzeug zum Verwalten von verschiedensten Projekten. Schwächen zeigt das Projektmanagement-Tool, wenn Informationen zu einzelnen Vorgängen eines Projektes wie Checklisten oder Berichte gespeichert werden sollen. Auch der Kalender ist verbesserungsfähig - projektfreie Zeiten wie Feiertage oder Betriebsferien müssen manuell eingepflegt werden. Doch das lässt sich ändern. In diesem Beitrag lernen Sie einen Kalender-Manager und eine Checklistenverwaltung kennen, die Project und Excel gemeinsam nutzt.

Der Projekt- und Ressourcenkalender stammt aus der ersten Project-Version und erlaubt weder Text- noch Termineinträge. Urlaubstage, Fehlzeiten, Feiertage und projektbedingte Ausfallzeiten müssen als boolsche Komponente (frei oder nicht frei), eingetragen werden. Genauere Informationen zum freien Tag lassen sich nicht speichern.

Eigentlich hätte Microsoft den Kalender von Project mit einer Importschnittstelle für Feiertage ausstatten können, so wie es der Kommunikations-Manager von Outlook anbietet. Da die Lösung mit einer Textdatei arbeitet, ist sie schon in Outlook unbefriedigend. In Project reicht eine einfache Aufzählung von Feiertagen nicht aus, um in globalen Projekten freie Tage in Projekt- und Ressourcenkalender zu implementieren. Deshalb ist es kein Verlust, dass Project über diese Schnittstelle nicht verfügt. An eine gemeinsame Kalenderverwaltung für die zeit- und terminlastigen Applikationen Outlook und Project ist auch deshalb nicht zu denken, weil die Programmstrukturen zu unterschiedlich sind.

 

Der Kalender-Manager
nach oben
   
Der Kalender-Manager ist eine ausbaufähige Lösung, die das zeitraubende Eintragen freier Tage in den Projektkalender automatisiert:
o Alle freien Projekttage werden in einer Vorgangstabelle erfasst oder per Importschnittstelle aus Datenquellen wie Access oder Excel integriert.
o Die Feiertage werden berechnet und in den Kalender übertragen. Dieser Vorgang lässt sich jederzeit revidieren und wiederholen. Die Gaußsche Osterformel macht es möglich, die beweglichen Feiertage zu berechnen.
o Über ein Formular werden alle freien Tage des Projektkalenders in einer Liste angeboten. Der Vorteil besteht darin, dass die Information über den Grund der Freistellung erhalten bleibt.
o Für weitere Kalenderoptionen wird ein direkter Zugriff auf die Kalenderfunktionen über den Menübefehl Extras/ Arbeitszeit ändern angeboten.

Die Plattform für den Kalender-Manager ist ein eigenes Projekt, das neben den VBA-Prozeduren und Formularen in der Vorgangstabelle die Liste der projektfreien Tage enthält:
o Verwenden Sie das neue Projekt, das mit dem Start von Project aktiv wird. Die globale Vorlagendatei Global.mpt eignet sich nicht, weil sie keinen Zugriff auf Tabelleninhalte erlaubt.
o

Tragen Sie in die Tabelle Eingabe in der Ansicht Balkendiagramm die Tage ein, die in den verwalteten Projekten als freie Tage gewertet werden (zum Beispiel Betriebsferien, Bild 1). Die Tage sollten einzeln mit der Dauer 1ft (fortlaufender Tag) erfasst werden, als Überschriften und Zwischenüberschriften sind Meilensteine mit der Dauer 0t erlaubt. Feiertage müssen nicht erfasst werden, da der Kalender-Manager sie selbst berechnet. Die Einträge können auch aus Excel-Mappen oder Access-Datenbanken importiert werden.
o

Um das Formular zu erzeugen, wechseln Sie in den VBA-Editor und fügen auf einem neuen Formular ein Kombinationsfeld zur Auswahl des Jahres, eine Liste für die freien Tage und die Schaltflächen ein, die für die Verwaltung der Datumseinheiten benötigt werden (Bild 2). Der aktuelle Projektkalender wird in einem Textfeld angezeigt, die Zuweisung oder Änderung erfolgt in Project über Extras/Arbeitszeit ändern.

 

o Formatieren Sie das Listenelement im Eigenschaften-Fenster vierspaltig, weisen Sie der ersten Spalte über die Eigenschaft ColumnWidths eine Breite von 30 Pt zu, setzen Sie diesen Wert später auf 0 Pt. Die übrigen Spalten werden je 50 Pt breit. Schalten Sie die Eigenschaft MultiSelect auf Status 1 (fmMultiSelectMulti), um eine Mehrfachauswahl in der Liste zu ermöglichen.
o

Zeigen Sie das Codefenster des Formulars an, und deklarieren Sie die globalen Variablen, die in allen Prozeduren benötigt werden:

Option Explicit
Dim selTage()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim jahr As Integer
Dim kal As String
Dim FTListe()

Die Ereignisprozedur des Initialize-Ereignisses (Listing 1) übernimmt die Aufgabe, die Bezeichnung des Projektkalenders (meist Standard) in die Beschriftung zu schreiben und das DropDown-Element mit einer Jahreszahlenreihe zu füllen.

Die Berechnung der freien Tage überlassen Sie der Funktion FreieTage_Berechnen (Listing 2), die auch von anderen Elementen benötigt wird. Ihr wird das aktuelle Jahr als Argument übergeben. Sie durchsucht die Vorgangsliste des Makroprojekts nach freien Tagen und schreibt diese über eine Array-Variable in das vierspaltige Listenfeld des Formulars. In der ersten Spalte steht die UniqueID des Tasks, ein eindeutiges Kennzeichen (im Unterschied zur ID, die ständig wechselt). In den weiteren Spalten werden Wochentag, Datum und Bezeichnung erfasst. Mit dem Einlesen der Liste werden die projektfreien Tage mit Hilfe der Methode BaseCalendarEditDays in den Projektkalender geschrieben. Der Methode werden als Argumente der Kalendername, Start- und Enddatum sowie der Boolesche Wert für Default übergeben, wobei False den jeweiligen Tag als arbeitsfreie Zeit kennzeichnet.

Nach dem Öffnen des Formulars kann die Liste mit den Einträgen aus der Vorgangstabelle gefüllt werden. Die freien Tage werden automatisch im Projektkalender gekennzeichnet.

 

 

Freie Tage in Arbeitstage umwandeln

nach oben
   

Alle weiteren Kalenderaufgaben übertragen Sie in die Schaltflächen auf dem Formular. Sie dienen dazu, markierte Einträge aus der Liste in Arbeitstage umzuwandeln oder einfach den Kalender aufzurufen. Änderungen im Kalender haben jedoch keine Auswirkungen auf die Freie-Tage-Liste, weder in der Vorgangstabelle noch im Formular.
Um alle freien Tage aus der Tabelle zu löschen und gleichzeitig im Kalender auf den Status von Arbeitstagen zurückzusetzen, werden einfach alle Einträge in der Liste des Formulars markiert und zur Berechnung freigegeben.
Zur Aktivierung des Projektkalenders des Formulars benutzen Sie die Methode BaseCalendars der Application-Klasse. Nach dem Schließen des Kalenders muss die Liste der freien Tage wieder aktualisiert werden.
Die Schaltfläche Fertig beendet den Kalender-Manager kommentarlos, da alle Aktivitäten von Schaltflächenereignissen abgedeckt sind:

 

 

Die Feiertagsberechnung nach oben
   

Um die Feiertage des ausgewählten Jahres in den Kalender eintragen zu können, müssen die Datumswerte berechnet werden. Die kirchlichen Feiertage lassen sich über die Gaußsche Osterformel ermitteln. Sie gibt das Datum des Ostersonntags aus, der maßgeblich für alle beweglichen Feiertage ist. Für die festen Feiertage benutzen Sie die Funktion DateSerial.
Der Code muss in der Ereignisprozedur des Click-Ereignisses der Schaltfläche Feiertage -> Kalender stehen.
Der Kalender-Manager wird als Projekt aufgerufen und trägt die berechneten Feiertage in seine Vorgangstabelle ein. Um den Projektkalender eines anderen Projekts zu verwalten, aktivieren Sie es und starten die Prozedur im Projekt Pptools.mpp.

 

 

Der Checklisten-Manager nach oben
   

In größeren Projekten oder Projekten mit langen Vorgangslisten verlieren Projektmanager schnell die Übersicht über Details, wenn diese nicht näher beschrieben oder im Projekt festgehalten sind. Leider bietet Project außer einer Notizfunktion und der Möglichkeit, Hyperlinks in der Indikatorenspalte zu setzen, keine weiteren Dokumentationsschnittstellen.
Der Checklisten-Manager setzt auf die Hyperlinkfunktion auf und bietet die Möglichkeit, zu jedem einzelnen Vorgang eine Excel-Tabelle zu generieren, die den Vorgangsnamen als Dateibezeichnung erhält und per Hyperlink dynamisch mit dem Projekt verbunden ist. Die Checklisten werden zentral verwaltet, um beispielsweise prüfen zu können, ob die einzelnen Punkte termingerecht abgearbeitet wurden.
Um alle Checklisten eines Projekts verwalten zu können, müssen diese direkt in die Vorgänge eingebunden werden. Der Hyperlink in der ersten Spalte reicht also nicht aus, da er nur den direkten Aufruf zulässt. Für die an den Vorgang gebundene Checkliste wird ein zusätzliches Feld vom Typ Text angelegt, in dem Pfad und Dateiname der Checkliste hinterlegt werden. Über den Menübefehl Extras/Anpassen/ Felder wird das Textfeld manuell erzeugt, es stehen bis zu 30 Textfelder zur Auswahl. Der Checklisten-Manager wird etwas mehr Funktionalität bieten:

o Sie können den Speicherort für die Checklisten per Formular einstellen und ändern.
o Da die Textfelder häufig schon für andere Informationen benutzt werden, zeigt das Programm alle benutzten Textfelder an und ermöglicht die Auswahl eines freien Textfeldes.
o Das aktuell belegte Textfeld wird ständig im Formular angezeigt.
 

Das erste Formular besteht aus einer zweispaltigen Liste für den Vorgangsnamen und die verbundene Checkliste, einem Bezeichnungsfeld für den Namen des aktuellen Vorgangs und einem Textfeld, in dem der Checklistenpfad eingetragen wird. Bild 6 zeigt dessen Aufbau.

Die Ereignisprozedur UserForm_Initialize (Listing 8) überträgt die Bezeichnung des markierten Vorgangs in das Formular und sucht über die Funktion TFSuchen nach dem Textfeld, das als Platzhalter für die Checkliste bestimmt wurde. Da die Liste dieser CustomFields sehr umfangreich ist, ist es besser, für die CustomFieldGetName-Methode die numerische FieldId an Stelle der Konstante anzugeben.

 

 


Nach dem ersten Aufruf des Formulars muss das Textfeld bestimmt werden. Dazu wird über die Schaltfläche Checklisten-Textfeld ein weiteres Formular geöffnet (Listing 9), das die Auswahl eines Textfeldes erlaubt und das gewählte Feld als Beschriftung der Schaltfläche verwendet. Das Formular erzeugt ein neues Feld mit der Bezeichnung Checklisten, das für alle Vorgänge einheitlich ist.
Über die Schaltflächen dieses Formulars werden die Textfelder umbenannt oder die Benennungen werden entfernt. Diese Aktionen lassen sich auch über den Menübefehl Extras/Felder anpassen durchführen

 

 

Checklisten anlegen nach oben
   

Um eine neue Checkliste anzulegen, markieren Sie zunächst den Vorgang in der Vorgangstabelle. Nach Aufruf des Checklisten-Managers erzeugt dieser per Klick auf die Schaltfläche Neue Checkliste einen neuen Eintrag im Textfeld Checklisten. Ein weiteres Formular bietet die Möglichkeit, den Namen der Excel-Datei und einen Beschreibungstext für den Hyperlink festzulegen.
Durch Anklicken der Schaltfläche OK wird die neue Checkliste erzeugt. Dazu aktiviert die Prozedur eine neue oder die bereits bestehende Instanz von Excel und fügt einen Hyperlink ein, der den Anwender zum Projekt zurückbringt.
Für den Aufruf von Excel muss dessen Objektbibliothek über den Menübefehl Extras/Verweise eingebunden sein. Haben Sie den Verweis eingerichtet, stehen die im weiteren Verlauf der Prozedur benötigten Befehle für die Checkliste zur Verfügung. Zeichnen Sie die Aktivitäten auf, legen Sie über die Elemente aus der Symbolleiste Formular Kontrollkästchen an und gestalten Sie die Excel-Checkliste nach Ihren Vorstellungen. Der Code wird in die Project-Prozedur eingebunden, so dass Project jede neue Checkliste nach dem gleichen Muster in Excel produziert.
Der Hyperlink in der ersten Spalte (Indikatoren) der Vorgangstabelle in Project erhält die Verknüpfung mit der neuen Checkliste:

InsertHyperlink Name:=vhptext, _
Address:=xlob.ActiveWorkbook.FullName, _
SubAddress:="", ScreenTip:=""

Die Prozedur für die neue Checkliste und die Click-Prozeduren für die Schaltflächen Checkliste aktivieren und Checkliste löschen finden Sie übrigens auf der Heft-CD des VBA Magazins Ausgabe 3/2001.
Die beiden vorgestellten Tools für Project sind mit einer Menü- und Symbolleistensteuerung ausgestattet, und eine Open- sowie eine BeforeClose-Prozedur sorgen dafür, dass die Steuerung mit der Mappe aktiviert beziehungsweise deaktiviert wird. Einer Erweiterung um zusätzliche nützliche Projekt-Tools steht damit nichts mehr im Wege.

 

 

Fazit: In diesem Beitrag haben Sie zwei Beispiele kennen gelernt, mit denen Sie die Funktionalität von Project sinnvoll ergänzen können. Deren Organisation in einer eigenen PAT-Datei erlaubt es, die Funktionalität in jedem beliebigen Projekt verfügbar zu machen und einzusetzen.

 

 

Alle Screenshots auf einen Blick | Alle Listings auf einen Blick

Ignatz Schels, der Autor dieses Artikels ist Technik-Informatiker, Journalist und Buchautor für Office-Themen, Visual Basic und VBA. Er konzipiert und leitet Seminare mit den Schwerpunkten Office, Excel, Project, Internet und VBA-Programmierung und schreibt individuelle VBA-Lösungen. Sie erreichen ihn unter info@schels.de.

Logo VBA MagazinDieser Beitrag wurde uns mit freundlicher Genehmigung des VBA Magazins überlassen.
Zurück zum Anfang
Das VBA Magazin ist d a s Fachmagazin für Office- und Datenbankentwickler. Es liefert aktuelle Trends, Praxisberichte und technisches Know-how rund um die Programmierung mit Microsoft Access, Microsoft Office und allen übrigen Produkten, die Visual Basic for Applications enthalten. Mit dem XML Supplement bietet es seinen Lesern brandneue Informationen zu diesem Standard, der täglich an Bedeutung gewinnt. Das VBA Magazin ist eine Publikation für Entwickler und Entscheider. Aufgrund der Verbreitung von Office und von Access sind die VBA-Programmierer laut Umfrage von Microsoft die weltweit größte Entwicklergruppe. Mit der Lizenzierung von VBA an andere Hersteller, die VBA als Programmiersprache in ihre Anwendungen einfügen, wächst sie ständig an. Das VBA Magazin erscheint im Computerfachverlag Cordula Lochmann, der auch Veranstalter der ViBAT, Europas größter VBA-Entwicklerkonferenz ist.

 


Kommentare zu diesem Artikel:

"Very interesting and beautiful site. It is a lot of helpful information. Thanks! (März 2006)"

"Very interesting and beautiful site. It is a lot of helpful information. Thanks! (März 2006)"

"genau das was ich gerade gesucht habe (März 2004)"

"Sehr nützlicher, aber etwas zu "technischer" Artikel. Gut verwendbar! (Oktober 2003)"

"Inhaltlich wertvoll und didaktisch hervorragend, verständlich und nachvollziehbar. Super! (Ich bereite gerade einen eigenen MS-Project Kurs vor...) (Februar 2003)"


Seite drucken Seiten drucken
Zum Seitenanfang nach oben

Für die Teilnahme an den mit diesem Icon gekennzeichneten Diensten melden Sie sich mit den Zugangsdaten an.
Zugangsdaten vergessen? | Noch kein GULP Profil?
Über GULP: Mehr als 3.000 Kunden, 75.000 eingetragene IT-Experten, davon 10.500 mit Schwerpunkt Engineering, und über 1.000.000 abgewickelte Projektanfragen: GULP ist die wichtigste Quelle für die Besetzung von IT-/Engineering-Projekten mit externen Spezialisten im deutschsprachigen Raum. Zusätzlich zu den Dienstleistungen einer modernen Personalagentur bietet GULP ein umfassendes Online-Portal mit Informationen und Services für die Teilnehmer im Markt.