Project2007: Summe Einheiten der Arbeit – als Zusatzanzeige für Dauer des Sammelvorganges?

Anonym
2011-03-13T09:54:42+00:00

Hallo Allseits,

immer wieder mal kommt folgende Situation vor:

Der Sammelvorgang zeigt (richtig) 5 Tage Dauer an.

Die Teilvorgänge dauern in der Summe aber nur 3 Tage...und der Kunde schaut zuerst auf die Dauer des Sammelvorgangs...und stellt dann die Fragen…

Problematisch – und die Erklärungen immer länger - wird es,  je höher (z.Bsp. mehrere Wochen/Monate) der Sammelvorgangszeitraum ist.

Als Beispiel:

  • eine 'normale' 5-Tage-Arbeitswoche
  • Vorgang 1: am Montag = 1 Tag
  • Vorgang 2: am Montag und am Dienstag = 2 Tage
  • Vorgang 3: am Freitag = 1 Tag

-> dafür Dauer des Sammelvorgangs = 5 Tage

-> an 3 Tagen finden aber nur Vorgänge statt

-> am Montag, Dienstag und am Freitag

Kennt Ihr ähnliche Situationen aus Eurer MS-Project-Arbeit?

Habt Ihr dafür einen Lösungsansatz?

An der Idee einer  1:1-Einheitensteuerung (Summe der Arbeit – als Zusatzanzeige (im extra Feld) für Dauer des Sammelvorganges) bin ich  gescheitert, weil dies bei sich überlappenden Vorgängen nicht händelbar ist und bei Vorgangverschiebungen gänzlich aus dem Raster fällt.

Danke für Eure Tipps und Hilfe - Gruß Steffen

Microsoft 365 und Office | Projekt | Andere | Windows
Microsoft 365 und Office | Projekt | Andere | Windows

Microsoft-Projektmanagementsoftware, die zum Planen, Verwalten und Kommunizieren eines Projektzeitplans und anderer Informationen zwischen Arbeitsgruppenmitgliedern, Projektmanager*innen und anderen Projektbeteiligten verwendet wird.

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
Antwort, die vom Frageautor angenommen wurde
Anonym
2011-03-18T06:16:11+00:00

und wenn für die Einzelvorgänge in Dauer2 auch die Dauer stehen soll:

Sub Duration2()

Dim T, ST As Task

Dim vdursub As Boolean

Dim vdate As Date

For Each ST In ActiveProject.Tasks

    If Not ST Is Nothing Then

        If ST.Summary Then

                vdur = 0

                For vdate = ST.Start To ST.Finish

                    vdursub = False

                    For Each T In ST.OutlineChildren

                        If T.Start <= vdate And T.Finish >= vdate _

                        And ActiveProject.Calendar.Period(vdate, vdate).Working Then

                            vdursub = True

                        End If

                    Next T

                    If vdursub Then

                        vdur = vdur + 1

                    End If

                Next vdate

        ST.Duration2 = vdur * 480

        Else

            ST.Duration2 = ST.Duration

        End If

    End If

Next ST

End Sub

Gruß

Barbara

War diese Antwort hilfreich?

0 Kommentare Keine Kommentare
Antwort, die vom Frageautor angenommen wurde
Anonym
2011-03-17T10:10:51+00:00

Hallo Steffen,

da stehe ich vor einem Rätsel. Bei mir läuft es problemlos. Ein Voraussetzung muss allerdings erfüllt sein: es muss für einen Tag Arbeit geben, damit er zu dieser Dauer addiert wird. Ein Plan ohne Arbeit bzw. Zuordnungen liefert nichts, da hier nicht wirkllich die Dauer betrachtet wird, sondern die Arbeitstage - heisst, es muss für den Tag was da sein (Ansicht Vorgang Einsatz). Ist das der Fall?

Gruß

Barbara

War diese Antwort hilfreich?

0 Kommentare Keine Kommentare

36 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2011-03-17T09:33:29+00:00

    Hallo Barbara, der Code läuft mit beiden Varianten ohne Fehlermeldung duch..., aber in Dauer2 bleibt '0' stehen

    Gruß Steffen

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2011-03-16T19:27:54+00:00

    Hallo Steffen,

    OK, jetzt hab ich's kapiert. Ist genau das, was ich vorhin entdeckt habe, ein echter Denkfehler: Aber die Frage führt zu einer Erkenntnis. Das kann alles gar nicht funktionieren (mit und ohne Makro), jedenfalls nicht auf der Sammelvorgangsebene - oder sind die sequentiell? Der Kalender betrifft ja das ganze Projekt. Wenn als ein Tag unter Sammelvorgang A frei ist (laut Planung), aber unter Sammelvorgang B Arbeit hat, ist das kein arbeitsfreier Tag - es passiert ja irgendwo etwas. D.h., dass Dauer1 für Sammelvorgang A nicht den erwarteten Wert anzeigt,..

    Wir sind uns also einig, so geht's nicht. Aber das sollte es tun (und füllt Dauer2):

    Sub FalscheDauer()

    Dim TSV As TimeScaleValues

    Dim T As Task

    For Each T In ActiveProject.Tasks

        If T.Summary And Not T Is Nothing Then

                vdur = 0

                For vdate = T.Start To T.Finish

                    Set TSV = T.TimeScaleData(vdate, vdate, pjTaskTimescaledWork, pjTimescaleDays, 1)

                    For i = 1 To TSV.Count

                        If TSV(i).Value <> "" Then

                            vdur = vdur + 1

                        End If

                    Next i

            Next vdate

        T.Duration2 = vdur * 480

        End If

    Next T

    End Sub

    Ich schreib jetzt die Arbeitstage in Dauer2, aber nur für Sammelvorgänge (keine Ahnung, wie lang und groß das Projekt ist). Wenn diese "falsche Dauer" auch für Einzelvorgänge gebraucht wird, bitte "If T.Summary And Not T Is Nothing Then" durch "If  Not T Is Nothing Then" ersetzen, dann läuft es halt länger. Ich hoffe, das passt jetzt?

    Gruß

    Barbara

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Anonym
    2011-03-16T16:15:22+00:00

    Hallo Barbara, probiere mal bitte 2 einfache Vorgangsgruppen, deren Vorgänge so ca. im gleichen Zeitraum sind - dann weißt Du was ich meine.

    Die arbeitsfreien Tage (aus der ersten Gruppe) gelten dann nicht. Gruß Steffen

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare