Hi Leute,
Ich habe ein kleines Problem, das ich nicht lösen kann:
Ich greife über ein Excel-Makro auf MSProject zu und hole mir ein paar Daten hier heraus.
Hier mal ein Auszug aus dem Code:
(Excel 2010, Project 2010)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Dim sDateien As String
Set oTargetBook = ThisWorkbook
If oTargetBook.Sheets( "Programmdeckblatt" ).Range( "A76" ).Value > 0 Then
sDateien = Range( "A76" ).Value
Dim prj As Object
On Error Resume Next
Set prj = CreateObject( "msproject.application" )
If Err = 429 Then
MsgBox "MSproject ist nicht installiert"
Exit Sub
End If
prj.FileOpen Name:=sDateien, ReadOnly := False , FormatID:= "MSProject.MPP"
prj.SelectSheet
prj.EditCopy
prj.SelectTaskField Row:=0, Column:= "Name"
prj.FileClose (0)
|
Soweit funktioniert alles.
In einer anderen Datei sollten alle Gliederungsebenen im MSProject ausgeklappt sein, das hat mit "prj.OutlineShowAllTasks" super funktioniert.
Nun möchte ich jedoch, dass der Terminplan nur bis zur Gliederungsebene 1 ausgeklappt (bzw. eingeklappt) wird um die Daten überschaubar zu halten.
Damit hätte ich nur ca. 10 Zeilen zum kopieren, anstatt 200+
Leider habe ich keine Ahnung, wie der korrekte Befehl hierzu aussieht... habe schon herumprobiert und gegoogelt, aber es will nicht klappen.
Hier mal meine Versuche, die allesamt fehlschlugen:
1 2 3 4 5 6 7 | prj.OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel1
prj.Outline.ShowTasks OutlineNumber:=pjTaskOutlineShowLevel1
prj.Outline.ShowLevels rowLevels:=1
prj.Outline.ShowTasks Tasklevels:=1
prj.OutlineShowTasks pjTaskOutlineShowLevel1, True
prj.OutlineShowtaskslevel1
|
Der Makrorecorder hat mich auch nicht weitergebracht.
Das Makro selbst soll über Excel ausgeführt werden, Ihn ins MSProject zu verschieben ist für mich keine Option, da es sich um Netzwerkdateien handelt und ansonsten bei jeder Aktualisierung die Meldung "Makros aktivieren"blabla bestätigt werden muss.
Weiß irgendjemand den korrekten Code?
Besten Dank schonmal.
Grüße, Felix
|