Thema Datum  Von Nutzer Rating
Antwort
Rot MSProject Ebenen einklappen per Excel VBA
05.05.2017 11:24:25 Felix
NotSolved

Ansicht des Beitrags:
Von:
Felix
Datum:
05.05.2017 11:24:25
Views:
995
Rating: Antwort:
  Ja
Thema:
MSProject Ebenen einklappen per Excel VBA

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)

 

   Dim sDateien As String
   Set oTargetBook = ThisWorkbook

If oTargetBook.Sheets("Programmdeckblatt").Range("A76").Value > 0 Then
     '= Pfad der MSProject-Datei
     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"

'<- hier Problemstelle: siehe unten
prj.SelectSheet
prj.EditCopy
prj.SelectTaskField Row:=0, Column:="Name"

'an dieser Stelle sind noch ein paar Befehle zum Einfügen in Excel
'für mein Problem aber unwichtig, daher nicht angeführt

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:

prj.OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel1 '-> Originalcode aus einem Forum, hat leider nicht funktioniert
'ab hier meine Variationen des Codes. Haben mich auch nicht weitergebracht
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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot MSProject Ebenen einklappen per Excel VBA
05.05.2017 11:24:25 Felix
NotSolved