Mrz 052020
 

Am 05.02.-07.02.2020 wurde ein Microsoft Project 2019 Intensiv – Seminar inhouse in Aachen durchgeführt. Beim Thema Ressourcenarten, Ressourcenkosten und deren Zuweisung zu Vorgängen diskutierten wir Lösungsmöglichkeiten und Alternativen, weil man für die Ressourcenart Kosten keinen Standardkostensatz angeben kann. Lösungsansatz: in Microsoft Project zugewiesene Ressourcen pro Vorgang zählen und mit einem Kostensatz in einem benutzerdefiniertem Kostenfeld multiplizieren.

Leider gibt es kein Datenbankfeld, welches das Auszählen zugewiesener Ressourcen pro Vorgang bzw. Zeile übernimmt.

Microsoft Project: zugewiesene Ressourcen pro Vorgang zählen mit VBA

Mit Hilfe von VBA (Visual Basic for Applications)  lässt sich die Anzahl zugewiesener Ressourcen pro Zeile bzw. pro Vorgang ermitteln. Im unten stehenden Beispiel wird mittels minimalem VBA-Code die Anzahl im Zahl1 – Feld ausgegeben. Im Beispiel werden alle Ressourcenarten ausgezählt; es ist also bei diesem Code sinnvoll, nur Ressourcen von der Ressourcenart „Arbeit“ zu benutzen, damit für diese z.B. ein Spesensatz multipliziert werden kann.

Als Erweiterung des dargestellten VBA Codes könnte man z.B. darüber nachdenken, nur die Ressourcenart Arbeit zu zählen. Die Ressourcenart Arbeit lässt sich mit der VBA Konstante „pjResourceTypeWork“ eingrenzen.

Ein Spesensatz, mit dem die Ressourcen-Anzahl und womöglich auch noch die Dauer in Tagen multipliziert werden soll, lässt sich z.B. im Kosten1 – Feld verwalten und per Formel berechnen, oder man packt die Berechnung auch noch in den Code…

VBA ist eine Programmiersprache und man sollte wissen, was man macht, oder was man besser nicht macht. Ggf. ist es sicherer, den Umgang mit VBA in einem Kurs zum Thema Microsoft Project zu üben, bevor man das nachfolgende Beispiel praktisch nachvollzieht. Natürlich sollte man stets eine Sicherungskopie von allen Dateien machen und ggf. den Administrator, Vorgesetzten um Erlaubnis fragen, bevor man mit VBA experimentiert.

Insbesondere im Hinblick auf diverse Schadsoftware, die ebenfalls VBA nutzt, um Code aus dem Internet nachzuladen, ist es sinnvoll, über den Einsatz von Sicherheitszertifikaten nachzudenken, die die Spreu vom Weizen trennen, also nur die Ausführung zertifizierter Makros zulässt.

Am besten wird ein VBA-Code in einem neuen Modul in der Global.MPT von Microsoft Project eingegeben, damit der VBA-Code unabhängig in jeder Microsoft Project Datei funktioniert:

Hierzu startet man aus Microsoft Project den Microsoft Visual Basic for Applications – Editor z.B. mit der Tastenkombination Alt+F11

In Microsoft Project im Microsoft Visual Basic for Applications – Editor wird mit der Tastenkombination Strg+R der Projekt-Explorer geöffnet (sofern nicht bereits sichtbar)

Im Projekt-Explorer markiert man die Zeile ProjectGlobal (Global.MPT) und über den Menüeintrag Einfügen erreicht man den Eintrag Modul – durch klicken wird ein neues Modul unterhalb von Module im Projekt-Explorer angezeigt.

Durch Doppelklick auf das Modul wird dieses geöffnet – der Cursor blinkt nun im rechten weißen Bereich und wartet auf Codeeingabe – hier gibt man den im Bildschirmfoto dargestellten Code ein. „RCount“ ist der Name des Makros, unter dem man dieses anschließend aufrufen kann.

Das Bildschirmfoto wurde von Michael Eickert aufgenommen und zeigt ein Projekt in Microsoft Project in der Ansicht Gantt-Diagramm mit zusätzlicher Spalte Zahl1; gleichzeitig ist der Microsoft VBA Editor geöffnet: in einem Modul wird der Code zum Zählen von zugewiesenen Ressourcen angezeigt

Das Bildschirmfoto wurde von Michael Eickert aufgenommen und zeigt ein Projekt in Microsoft Project in der Ansicht Gantt-Diagramm mit zusätzlicher Spalte Zahl1; gleichzeitig ist der Microsoft VBA Editor geöffnet: in einem Modul wird der Code zum Zählen von zugewiesenen Ressourcen (Assignments) angezeigt. Das Makro wurde bereits ausgeführt, so dass die Ressourcenanzahl bereits in Zahl1 sichtbar ist.

Funktionsbeschreibung von RCount:

In einem Projekt in der Ansicht Gantt-Diagramm werden alle pro Vorgang/Zeile zugewiesene Ressourcen in Spalte Zahl1 gezählt. Eine Unterscheidung von Ressourcenarten findet nicht statt.

Ändert sich die Zuweisung von Ressourcen in den Vorgängen, bzw. Zeilen, so muss der Inhalt von Spalte Zahl1 zuvor manuell gelöscht werden (markieren und z.B. Entf.-Taste) und anschließend muss das Makro erneut ausgeführt werden.