Zuordnungseinheiten in Project ab Version 2010

erstellt von barbara.henhapl am 2. May 2013 08:46
Heute äußere mich einmal zu einem Thema, bei dem ich nicht voll hinter den Entscheidungen der Project Product Group stehe . Wer mit Project in den Versionen bis 2007 arbeitet oder gearbeitet hat, kennt folgendes Verhalten. Wir haben einen Vorgang mit der Dauer von 5 Tagen und einer Ressourcenzuordnung von 100%. Die Vorgangsart ist Feste Arbeit, wir erwarten also ein Änderung der Zuordnungseinheit, wenn die Dauer geändert wird. Das ist auch was passiert, und es wird auch so dargestellt. Die geänderte Zuordnungseinheit ist jetzt 50%, angezeigt in eckigen Klammern hinter dem Ressourcennamen. Sehen wir uns das Ganze in den Versionen 2010 und 2013 an. Nehmen wir jetzt die gleiche Änderung unter 2010 oder 2013 vor: wir verdoppeln wieder die Dauer. Hier wird die Zuordnungseinheit in der Anzeige nicht mehr aktualisiert. Die Einheit wird selbstverständlich angepasst, nur eben nicht mehr in eckigen Klammern dargestellt. Um die tatsächlich verwendeten Einheiten zu sehen, muss man in eine Einsatzansicht wechseln oder diese über Ansicht – Details – Vorgang/Ressource Einsatz im geteilten Fenster anzeigen. In dieser Ansicht kann man entweder in der Tabelle die Spalte Höchstwert einblenden oder in Grid die Prozentuale Zuteilung (und/oder auch den Höchstwert) darstellen. Zum Einblenden zusätzlicher Informationen klicken Sie mit der rechten Maustaste in das Zeitraster und klicken im Kontextmenü auf Einzelheitenarten. Suchen Sie Prozentuale Zuteilung und/oder Höchstwert und klicken Sie auf Anzeigen. Schließen Sie das Dialogfenster mit Klick auf OK. Danach sehen Sie die tatsächlichen Einheiten. Die tatsächlichen 50% sind hier jetzt sichtbar, auch wenn sie nicht wie in den Versionen bis einschließlich 2007 in eckigen Klammern dargestellt werden. Hierbei handelt es sich um eine grundsätzliche Änderung, die mit 2010 eingeführt wurde. Dem Projektmanager sollen weiterhin die Einheiten angezeigt werden, mit denen er ursprünglich geplant hatte. Die vollständige offizielle Erläuterung von Microsoft finden Sie auf Englisch unter Assignment Units in Project 2010. Die Änderung ist für Umsteiger sicher anfangs gewöhnungsbedürftig. Doch wenn man sich mit Zuordnungseinheiten in 2007 und früher näher beschäftigt hat, ist aufgefallen, dass auch hier Schwächen waren. Der Wert in Klammern hat den Höchstwert und nicht die Zuordnungseinheit angezeigt, wie der folgende Screenshot zeigt. Die Ressource ist mit 40 Stunden Arbeit in 10 Tagen eigentlich zu 50% zugeordnet, dargestellt werden aber 75%, da an einem der Tage 6 Stunden Arbeit geplant sind. Eine saubere Darstellung erhält man nur nach Ändern des Zooms auf Wochenansicht. Doch das ist Vergangenheit und nicht mehr so relevant. Einen meiner MVP-Kollegen hat das geänderte Verhalten der Zuordnungseinheiten so irritiert, dass er ein Makro zur “Korrektur” dieser Einheit geschrieben hat. Sie finden das Original von Rod Gill unter Project 2010 - Reset Assignment Units. Ich habe das als Basis genommen und leicht modifiziert, damit es in Europa mit anderen Ländereinstellungen auch läuft. Zudem finde ich es in diesem Zusammenhang wesentlich, dass Sie die Rückgängig-Option verwenden können. Mit freundlicher Genehmigung von Rod stelle ich hier meine Makro-Version zur Verfügung. Sub RefreshUnits() Dim Tsk As Task Dim Assgn As Assignment Dim MyVersion As Integer Dim StartDate As Date Dim TaskType As Long Dim Work As Long Sub RefreshUnits() Dim Tsk As Task Dim Assgn As Assignment Dim MyVersion As Integer Dim StartDate As Date Dim TaskType As Long Dim Work As Long 'Originally developed by Rod Gill - thanks for providing 'http://www.projectvbabook.com/VBA-Sample-Code/VBASampleResetAssignmentUnits.html 'This macro runs on active Project 2010 and higher only. 'Information for Assignmentunit Change at 'http://blogs.msdn.com/b/project/archive/2010/04/29/assignment-units-in-project-2010.aspx 'Modifications by Barbara Henhapl, http://www.henhapl.net ' 1. Undo implemented ' 2. Enable different regional settings 'Please distribute with above source information only     'Check version, with respect to regional settings     If CInt(Replace(Application.Version, ".", Application.DecimalSeparator)) < 14 Then         Select Case Application.LocaleID             Case 1031 'German                 MsgText = "Dieses Makro ist nur für Project 2010 und höher sinnvoll, daher " _                     & "wird das Makro nun beendet."             'Case 1036  'French             '   MsgText =             'Case 1043  'Dutch             '   MsgText =             Case Else ' English and other                 MsgText = "This macro is only useful for Project 2010 and later, so macro has " _                     & "ended."         End Select         MsgBox MsgText, vbCritical + vbOKOnly     Else         F_RefreshUnits     End If End Sub Function F_RefreshUnits() Application.OpenUndoTransaction ("Refresh Units")         For Each Tsk In ActiveProject.Tasks             If Not Tsk Is Nothing Then                 'Only adjust Units for an Auto, incomplete, non-summary, active Task                 If Tsk.PercentComplete < 100 And Not Tsk.Summary And Tsk.Active And Tsk.Manual = False Then                     TaskType = Tsk.Type                     Tsk.Type = pjFixedDuration                     For Each Assgn In Tsk.Assignments                         If Assgn.PercentWorkComplete < 100 Then                             If Assgn.PercentWorkComplete > 0 Then                                 StartDate = Tsk.Resume  'This is not necessarily accurate but is close enough                             Else                                 StartDate = Assgn.Start                             End If                             Work = Assgn.Work                             If Not Tsk.IgnoreResourceCalendar Then                                 RemDur = Application.DateDifference _                                 (StartDate, Assgn.Finish, Assgn.Resource.Calendar)                             Else                                 RemDur = Application.DateDifference _                                 (StartDate, Assgn.Finish, ActiveProject.BaseCalendars(Tsk.Calendar))                             End If                             Assgn.Units = Assgn.RemainingWork / RemDur                             Assgn.Work = Work                         End If                     Next Assgn                     Tsk.Type = TaskType                 End If             End If         Next Tsk Application.CloseUndoTransaction End Function Um dieses Makro zu verwenden, öffnen sie mit Alt+F11 den Visual Basic Editor (oder über Ansicht – Makros – Visual Basic). Klicken Sie mit der rechten Maustaste auf ProjectGlobal (Global.mpt). Wählen Sie im Kontextmenü Einfügen – Modul aus. Fügen Sie den oben angegebenen Code ein. Anschließend steht das Makro in Ansicht – Makros – Makros anzeigen zum Ausführen zur Verfügung. Wenn ich das Makro in 2010 bzw. 2013 für obiges Beispiel laufen lasse, werden die Einheiten aktualisiert. Zur Auffrischung, der Vorgang hat sich folgendermaßen dargestellt. Nach dem Lauf des Makros werden [50%] angezeigt. Das Umsetzen der angezeigten Einheiten kann auch wieder rückgängig gemacht werden. Ich hoffe, die Erläuterungen helfen beim Verständnis des Verhaltens!
mehr

Kommentare

Comment RSS

Month List

Dieser Blog wird von Microsoft Österreich betrieben.