Projektstrukturplan als Jump Page für Projekte

You are currently viewing Projektstrukturplan als Jump Page für Projekte

Setzt Ihr Unternehmen Projektmanagement Software ein, ermöglichen Sie Ihrem Team eine klare Übersicht über das Projekt. Alle Informationen laufen in einem System zusammen. Das erzeugt Transparenz, führt zu zielgerichterter Kommunikation und verringert die Gefahr von Fehlschlägen.

Nach Nutzerstudien im Projektmanagement-Bereich nutzen aber nur die Hälfte der Unternehmen eine Projektmanagement Software. Nimmt man auch noch diejenigen heraus, die nur Standard-Tools wie MS Project einsetzen, sind es noch weniger.

Mehr als die Hälfte der Projektteams planen, strukturieren und steuern Ihre Projekte demnach mit Standard Office Hilfsmitteln. Grund genug, dass genauer anzuschauen.

Inhalt:

Suchen, finden, fehlende Struktur

Auf wichtige Dokumente wie Zielformulierungen, Projektpläne, Arbeitspaketbeschreibungen, Kosten muss jedes Teammitglied zugreifen können.

Mit dem Einsetzen von Office Anwendungen stehen die Projektteams vor der Aufgabe diese Dokumente an sinnvollen Speicherorten abzulegen. Gibt es dafür keine Standards besteht die Gefahr, dass die Projektteams diese Dokumente nur jedes Mal mit Aufwand finden und so wertvolle Projektzeit mit suchen verschwenden. Im schlimmsten Fall erstellt das Team manche Dokumente, durch fehlende Standards, überhaupt nicht und das Team arbeitet am Projektziel vorbei.

Auf der anderen Seite passen harte Standards und Strukturvorgaben nicht für jedes Projekt. Hier ist es ein absoluter Vorteil, wenn Projektleiter und Projektteam für ihr Projekt neue Wege gehen können.

Besonders relevant gestaltet sich die Projekttätigkeit für Personen, die in mehreren Projekten mit unterschiedlichen Standards und Strukturen mitarbeiten (müssen).

Für diese Fälle bietet Projektmanagement Software eine Lösung an, in dem verschiedene Projektstandards und -strukturen unterstützt werden. So können Projektleiter Ihre Projektstruktur optimal auf das Projekt abstimmen und trotzdem kann jedes Projektmitglied über Menüpunkte auf die wichtigen Dokumente (oder eher Datenbankfelder) zugreifen.

Dieser Vorteil lässt sich auch beim Nutzen von Office Anwendungen ausnutzen. Im Office Bereich geht es aber sinnvoll nicht ohne Tool.

Damit sind Sie auch nicht alleine. Eine Google Suche nach „Tools Projektmanagement Office“ liefert ~1,5 mio Treffer.

Da Projekte genauso individuell sind wie Unternehmen, ist es meist am besten, hier nicht auf ein fertiges Software-Tool zu setzen, sondern selber Hand an zu legen und eine Erweiterung in der Office Anwendung zu programmieren. Sie wissen schließlich am besten, was Sie genau brauchen!

Einen Vorschlag das umzusetzen, möchte ich Ihnen im Folgenden zeigen.

Projektstrukturplan als ideale Ausgangsbasis

Viele Projektmanagement Systeme stellen dafür ein Projekt-Cockpit zur Verfügung. Dort sind alle relevanten Projektdaten und -ergebnisse zusammengefasst. Von dort aus erfährt jedes Projektmitglied alles notwendige zum Projekt.

Projektmanagement Systeme greifen auf alle Projektdaten zu. Mit dieser hohen Durchdringung können sie jede Projektinformation mit wenigen Klicks direkt verfügbar machen und liefern einen echten Mehrwert.

Das ließe sich auch ähnlich im Office Bereich nachbauen. Sie müssten dann aber für jedes Projekt ein angepasstes Projekt-Cockpit bauen. Ob das für alle Projekte notwendig ist, ist aber fraglich.

Projektstrukturplan mit Ebene Projektmanagement
Projektstrukturplan mit einer Ebene Projektmanagement

Schaut man sich die wichtigsten Dokumente im Projekt an, handelt es sich um Lieferobjekte des Projekts (Arbeitspakete). Lieferobjekte werden im Projektstrukturplan abgebildet. Dokumente, die nicht direkt dort abgebildet sind, wie Projektziele, Rahmenbedingungen, Stakeholderanalyse, Risikoanalyse, lassen sich aber logisch in die Planstruktur einarbeiten. Möglich ist das durch eine zusätzliche Ebene wie „Projektmanagement“ oder sie packen solche Dokumente in das Projekt Wurzelelement.

Als „Plan der Pläne“ braucht jedes Projekt meiner Meinung nach einen Projektstrukturplan. Der lässt sich individuell auf jedes Projekt flexibel anpassen. Dadurch bietet es sich gerade zu an, den Projektstrukturplan als Basis Dokument zu verwenden und von dort aus auf die wichtigsten Dokumente zu verweisen.

Projektstrukturplan als Jump Page

Bei der Webseitengestaltung spricht man auch von Jump Pages (Brückenseiten). Diese Seiten werden speziell für Suchmaschinen erstellt und enthalten Schlüsselworte und Links auf die jeweiligen Seiten mit Inhalt. So findet eine Suchmaschine den gewünschten Inhalt für den Suchmaschinen Nutzer schneller.

Auf das Projektmanagement adapiert, informiert sich das Projektteam über die Jump Page Projektstrukturplan und findet von dort aus alle relevanten Inhalte zum Projekt schnell und in strukturierter Form.

Das hat weitere Vorteile.

  • Dem Projektteam sind mit dem Projektstrukturplan als Basis immer alle Leistungsobjekte bekannt. Beim wiederholten Öffnen bleiben diese über die gesamte Projektdauer präsent.
  • Dort lässt sich auch der Projektfortschritt visualisieren, eine ideale Grundlage für Statusgespräche.
  • Die Struktur des Projektstrukturplans kann gespiegelt im Dateisystem direkt zur Dokumentenablage eingesetzt werden.
Jedes Element im Projektstrukturplan kann Links zu Web URLs oder zum Dateisystem enthalten
Jedes Element im Projektstrukturplan kann Links zu Web URLs oder zum Dateisystem enthalten

Der 3 min Projektstrukturplan

Der Projektstrukturplan ist ein grafisches Objekt. Um ihn zu erstellen, ist daher etwas Aufwand notwendig. Als Jump Page muss er auch mit Verknüpfungen klarkommen.

Im Artikel Projektstrukturplan / PSP in 3 Minuten habe ich ein Excel Tool entwickelt, dass einen grafischen Projektstrukturplan aus einer einfachen hierarchischen Liste erzeugt.

Deswegen ist das Tool für mich die perfekte Ausgangsbasis. Ich zeige ihnen in den nächsten Abschnitten, wie Sie die neue Funktionalität einbauen und wie es auf Ihre persönlichen Anforderungen anpassen.

Wenn Sie das Tool genau verstehen wollen, schauen Sie sich meine Artikel dazu an. Dort finden Sie die bisherigen Funktionen erklärt.

Hier eine Kurz-Zusammenfassung:

  • Basis ist eine einfache Liste in Excel im Tabellenblatt Start
  • Dort stehen in einer hierarchischen Struktur, die über die Spalte Code gegliedert wird, alle Objekte des Projektstrukturplans. Obligatorisch sind dabei nur die Spalten Code und Name. In den Spalten F1 bis F10 können Sie eigene Daten hinterlegen, die Sie im Projektstrukturplan anzeigen möchten.
  • Mit einer grafischen Gestaltung nach Ihrer Corporate Identity passen Sie den Projektstrukturplan noch intuitiver für das Projektteam an. Im Tabellenblatt Setup finden Sie Möglichkeiten dafür. 
  • Das Tool bringt auch eine eigene Ribbon Leiste mit. Jetzt reicht ein Klick, schon generiert der Code den grafischen Projektstrukturplan aus Excel Form Elementen.
  • Beispiel für einen mit dem Projektstrukturplan Tool erstellen Plan
  • Ribbon Leiste des Projektstrukturplan Tools
  • Einstellungsmöglichkeiten für das grafische Aussehen des Projektstrukturplans und der Jump Page
  • Hierarchische Liste mit Code und Name als Ausgangsbasis für den grafischen Projektstrukturplan

Erweiterungen des Projektstrukturplan Tools

In Excel ist es möglich jeder Form Element, z. B. einer Rechteckform, eine Aktion zuzuweisen. Klickt ein Benutzer auf das Element löst Excel ein Ereignis aus. Auf kann ein VBA Code dann reagieren.

Für reine Arbeitspakete könnte das ausreichen. Mit einem Klick öffnet sich für den Benutzer das Dokument mit der Arbeitspakete Definition. Für logische Elemente, wie im obigen Beispiel der Phase „5 Realisierung“ reicht ein Dokument vielleicht nicht aus.

Sinnvoll wären Zugriffe auf Teilziele, Kosten der Phase oder Statusberichte. Damit muss sich bei jedem Klick ein Dialog öffnen, der die verschiedenen Dokumente anzeigt.

Jump Page Dialog zur Auswahl von mehreren Dokumenten bei einem Projektstrukturplan Element
Jump Page Dialog zur Auswahl von mehreren Dokumenten bei einem Projektstrukturplan Element

Das was dieser Dialog darstellt, muss irgendwo hinterlegt sein. Dafür bietet sich die einfache Liste auf Tabellenblatt Start an. Sie wird einfach mit einer zusätzlichen Spalte Dokumente erweitert.

Unterschiedliche Dokumentarten

Vielen Unternehmen verwenden neben dem Dateisystem andere Anwendungen, die ebenfalls Informationen aufnehmen und speichern können. Das Spektrum reicht von Sharepoints über Microsoft Teams Ordner bis zu Dokumentationssystemen wie Confluence. Das ist aber kein Problem. Die Systeme lassen sich über Links aufrufen. Für die Erweiterung im Projektstrukturplan bedeutet das aber, dass neben klassischen Dokumenten auch Links möglich sein müssen.

Wie löst man nun die Problematik mit mehreren Dokumenten bzw. Links? Mehrere Spalten einfügen? Das macht es komplexer, wenn zukünftig weitere Spalten notwendig werden. Besser ist es, alle Dokumente in einer einzigen Zelle zu speichern und ein Trennzeichen einzuführen.

Ein Trennzeichen, welches weder in Dateinamen noch in Web-URL vorkommen darf, ist das „|“ Zeichen.

Leider sind Web-URLs nicht immer so aussagekräftig, das klar ist, welches Dokument oder welche Webseite aufgerufen wird. MS Teams verwendet sogar unlesbare codierte Strings.

Für eine sinnvolle Anzeige für den Benutzer bedarf es also eines zusätzlichen Titel-Feldes. Um später denselben Algorithmus zum Umwandeln aus der Zelle verwenden zu können, wird der Titel auch durch das „|“ Zeichen getrennt.

Damit gibt es diesen Aufbau für die Jump Ziele, die Dokumente und Web-URLs.

Titel|URL oder Pfad zum Dokument|TitelURL oder Pfad zum Dokument…

Ein Beispiel könnte so aussehen:

Projekt-Cockpit|X:\PJ1\1 Projekt-Management\Projekt-Cockpit.xlsx|Ziele| X:\PJ1\1 Projekt-Management\Ziele.xlsx|Rahmenbedingungen| X:\PJ1\1 Projekt-Management\Rahmenbedingungen.xlsx

Die Eingabe sieht momentan vielleicht etwas kryptisch aus, lässt sich aber gut aus Formeln zusammenbauen und kopieren.

Absolute oder relative Pfad

Werden URLs verwendet, ist klar, dass die vollständige URL in die Zelle kopiert wird. Bei Dateipfaden gibt es zwei Möglichkeiten, absolut oder relativ?

Die richtige Wahl hängt meiner Meinung nach von der Projektstruktur ab. Befinden sich alle Dokumente, die referenziert werden sollen, innerhalb einer Orderstruktur, sind relative Pfade vorteilhaft. Der Pflegeaufwand verkürzt sich durch kleinere Pfadlängen deutlich, Projekte können ohne Änderung an andere Orte, wie z. B. auf einen USB-Stick kopiert werden.

Liegen Dokumente außerhalb eines Projektordners passen absolute Pfade besser.

Umsetzung im Quellcode

Das war jetzt einiges an Erklärung. Jetzt geht es an die Umsetzung. Ausgangsbasis ist die Version 06 des Projektstrukturplan Tools.

OnAction Ereignis nutzen

Damit überhaupt etwas passen kann, wenn jemand auf ein Form Element im Projektstrukturplan klickt, braucht es ein Ereignis. Form Elemente oder Shapes haben dafür die Sub OnAction bekommen. Excel löst die Prozedur, die OnAction zugewiesen ist, bei jedem Klick aus.

Der richtige Ort um diese Prozedur für jedes Form Element anzutriggern, ist im bestehenden Tool in der Sub InsertRectangle. Dort erstellt das Tool jeweils ein Form Element des Projektstrukturplans.

InsertRectangle benötigt dafür einen zusätzlichen Parameter linkedDocuments, den String aus dem Tabellenblatt Start mit den zusammengesetzten Dokumenten und Titeln. Damit später auf das Tabellenblatt Start mit der Liste verzichtet werden kann, speichert der Makro den linkedDocuments String als Alternativ-Text des Form Elements in der Eigenschaft AlternativeText.

OnAction bekommt die Prozedur WorkPackage_Click übergeben. Um das angeklickte Shape zu erkennen, wird der Shape-Name als Parameter mit übergeben. Falls Leerzeichen im Shape-Namen sein sollten, kommt er zwischen Anführungszeichen durch Chr$(34). Erweiterung von InsertRectangle:

  ActiveSheet.Shapes("N_" & name).AlternativeText = linkedDocuments

  If linkedDocuments <> "" Then
    ActiveSheet.Shapes("N_" & name).OnAction = "'WorkPackage_Click " & Chr$(34) & "N_" & name & Chr$(34) & "'"
  End If

Was passiert beim Klick?

Durch den obigen Code ruft Excel bei jedem Klick auf ein Form Element die Prozedur WorkPackage_Click mit dem Namen des angeklickten Elements auf.

Einstellung ALWAYS_SHOW_DOCUMENTS_DIALOG im Setup Tabellenblatt
Einstellung ALWAYS_SHOW_DOCUMENTS_DIALOG im Setup Tabellenblatt

Passieren soll aber nur etwas, wenn auch Dokumente verlinkt wurden. Ist nur ein Dokument verlinkt, kann es lästig sein, wenn sich ein Auswahldialog öffnet und des nur ein Element zur Auswahl gibt. Deswegen hat der Benutzer im Tabellenblatt Setup eine Einstellmöglichkeit darauf zu verzichten.

Um zu entscheiden, ob mehrere Dokumente verlinkt sind, hilft eine Prozedur des Dialogs aus. Der Dialog hat den Objektnamen LinkedDocumentsForm bekommen.

Sub WorkPackage_Click(shapeName As String)
Dim linkedDocuments As String

  linkedDocuments = ActiveSheet.Shapes(shapeName).AlternativeText

  Call LinkedDocumentsForm.UpdateDocuments(linkedDocuments)
  If LinkedDocumentsForm.ListBox1.ListCount > 1 Or UCase(Sheets("Setup").Range("ALWAYS_SHOW_DOCUMENTS_DIALOG")) = "J" Then
    LinkedDocumentsForm.caption = "Verknüpfte Dokumente: " & ConvertControlCharsToSpace(ActiveSheet.Shapes(shapeName).TextFrame2.TextRange.Characters.Text)
    LinkedDocumentsForm.Show
  ElseIf LinkedDocumentsForm.ListBox1.ListCount = 1 Then
   Call OpenDocument(document(1))
  End If
End Sub
Dialog aus zwei Buttons, einer Listbox und einer Textbox
Dialog aus zwei Buttons, einer Listbox und einer Textbox

Jump Dialog anzeigen

Die Prozedur LinkedDocumentsForm.UpdateDocuments mit dem Parameter linkedDocuments zerlegt, die mit Trennzeichen „|“ zusammengebauten Dokumente und Titel wieder in ihre Einzelteile und speichert sie in zwei globale Arrays title() und document(). Das geschieht mit der VBA Funktion Split. Der Dialog nutzt beide Arrays intern für die Anzeige in einer Listbox (Titel) und für eine Detailansicht des Links.

Sub UpdateDocuments(documents As String)
Dim docArray As Variant
Dim i As Integer
Dim j As Integer
  
  docArray = Split(documents, "|")
  
  j = (UBound(docArray, 1) + 1) / 2
  If j < 1 Then j = 1
  ReDim document(j)
  ReDim title(j)
  
  j = 0
  For i = LBound(docArray, 1) To UBound(docArray, 1) Step 2
    j = j + 1
    title(j) = docArray(i)
    document(j) = docArray(i + 1)
    If title(j) = "" Then
      title(j) = ExtractFilename(document(j))
    End If
  Next
  
  ListBox1.Clear
  For i = 1 To j
    ListBox1.AddItem title(i)
  Next
  
  If ListBox1.ListCount > 0 Then
    ListBox1.Selected(0) = True
  End If
End Sub

Dokumente öffnen

Jetzt muss Excel überredet werden, das entsprechende Dokument zu öffnen. Durch die unterschiedlichen Varianten von Links zu absoluten und relativen Pfaden sind hier ein paar Fallunterscheidungen notwendig. Deswegen macht es Sinn, das in eine eigene Prozedur OpenDocument auszulagern.

Ist der Link kein als vertrauenswürdiger Speicherort für Excel (siehe Trust Center) oder die HyperlinkWarning in der Registry aktiviert, blendet Excel einen Dialog mit einer Sicherheitsabfrage ein, ob das Dokument geöffnet werden soll. Klickt der Benutzer auf Nein, landet er direkt im Debug-Modus. Das lässt sich durch ein „On Error Resume Next“ verhindern.

Zuerst wird geprüft, ob keine URL vorliegt. Dann wird unterschieden, ob ein relativer Pfad vorliegt. Der muss zwingend mit „.\“ beginnen. Denn der Teil mit „.\“ wird durch den Basispfad ersetzt.

Für den Basispfad haben Sie mehrere Möglichkeiten. Haben Sie eine feste Ordnerstruktur im Unternehmen, z. B. X:\Projekte\Projekt XXX können Sie diesen Pfad im Tabellenblatt Setup hinterlegen. Damit spielt es keine Rolle wo der Projektstrukturplan mit Jump Page gespeichert wird.

Basispfad hinterlegen im Tabellenblatt Setup
Basispfad hinterlegen im Tabellenblatt Setup

Ist der Basispfad nicht eingegeben, wird stattdessen als Basis der Speicherort des Projektstrukturplans eingesetzt. Die VBA Funktion ActiveWorkbook.path liefert in.

Fehlt am Ende des Pfads ein Pfadtrennzeichen ergänzt es der Code in Zeile 13. Um betriebssystemunabhängig zu bleiben, nutzt die Prozedur eine VBA Eigenschaft Application.PathSeparator.

Am Ende der Unterscheidungen findet das eigentliche Öffnen mit dem Befehl ActiveWorkbook.FollowHyperlink statt.

Sub OpenDocument(document As String)
Dim path As String

On Error Resume Next

  'URL?
  If LCase(Left$(document, 4)) <> "http" Then
  
    'relativer oder absoluter Pfad?
    If Left$(document, 2) = "."& Application.PathSeparator Then
      path = Sheets("Setup").Range("PATH_DOCUMENTS")
      If path = "" Then path = ActiveWorkbook.path
      If Right$(path, 1) <> Application.PathSeparator Then
        path = path & Application.PathSeparator
      End If
      document = path & Right$(document, Len(document) - 2)
    End If
  End If
  
  ActiveWorkbook.FollowHyperlink document
End Sub

Die Jump Page im Projektstrukturplan in Action

Wie arbeitet jetzt dieses System zusammen? Sobald Sie auf den Ribbon Button „Insert WBS“ klicken, erzeugt der Code den Projektstrukturplan und verlinkt eingegebene Dokumente oder URLs.

Klicken Sie ein Element im Projektstrukturplan an, erscheint je nach Einstellung, der Jump Page Dialog.

Hier können Sie sich ein Beispiel anschauen, um sich selber ein Bild davon zu machen.

Wenn Sie das lieber selber ausprobieren möchten oder es auf Ihre Anforderungen anpassen wollen, können Sie das Beispiel auch unter Download herunterladen.

Viel Spaß damit und bessere Projekte!

Download

Klicken Sie auf das Download Icon, um das Projektstrukturplan Tool auf github zu downloaden. Dort finden Sie auch den vollständigen Quellcode.

https://github.com/tangielsky/automaticWBS

Nutzerstudie aus 2018: Wie wird Projektmanagement Software in Deutschland genutzt?
https://www.capterra.com.de/blog/407/nutzerstudie-wie-wird-projektmanagement-software-in-deutschland-genutzt

10 spannende Einblicke zum Stand des Projektmanagements aus 2022
https://projekte-leicht-gemacht.de/blog/projektmanagement/einblicke-projektmanagement-2022/

Deaktiveren der Hyperlink Warnung
https://docs.microsoft.com/de-DE/office365/troubleshoot/administration/enable-disable-hyperlink-warning

OnAction Ereignis
https://docs.microsoft.com/de-de/office/vba/api/excel.shape.onaction

Kommentar verfassen