Mit VBA eine XML Datei für MS Project erzeugen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Mit VBA eine XML Datei für MS Project erzeugen
von: Willi Ediger
Geschrieben am: 18.10.2015 21:25:42

Liebe Profis,
schlage mich schon seit Tagen mit folgendem Problem herum:
Wie bekomme ich mittels Excel VBA eine XML Datei geschrieben/erstellt, welche als Import für Microsoft Project verwendet werden kann?

Und zwar muss die in MS Project zu importierende XML-Datei ein in 3 Ebenenen gegliedertes Projekt ergeben. Die letzte (3.) Ebene stellt die Meilensteine dar, die ersten beiden die Arbeitsvorgänge. Das bedeutet, dass Start- und Endetermine bzw. Dauer nur in der 3. Ebene festgelegt werden, während die Arbeitsvorgänge (1./2. Ebene) die Summe der Meilensteine darstellen.
Es gibt beliebige Wege in VBA (Excel) eine XML Datei zu erzeugen, aber für den Import nach MS Project müssen genaue Parameter vorgegeben werden, auch die Einstellung, welche der "Tasks" Summen bzw. Arbeitsvorgänge darstellen und welche davon Meilensteine.
Ich wäre über einen Rat aus der Expertenrunde äußerst dankbar!

Bild

Betrifft: AW: Mit VBA eine XML Datei für MS Project erzeugen
von: fcs
Geschrieben am: 19.10.2015 08:20:15
Hallo Willy,
ich denke, dass hier nicht so viele User unterwegs sind, die sich mit MS Project auskennen, ganz zu schweigen von der Struktur der XML-Files, die MS Project einlesen kann.
Erstelle in MS Project einen Terminplan mit 3 Meilensteinen und ihren Arbeitsvorgängen, die dem geforderten Muster entsprechen.
Diesen Terminplan speicherst du/exportiest du als XML-Datei.
Ich sehe jetzt 2 potentielle Möglichkeiten:
A: Du kannst diese Datei in Excel einlesen, so das Excel den Dateiaufbau erkennt.
Jetzt änderst/ergänzt du die gewünschten Daten (Vorgangsnummern, Bezeichnung, Start, Ende Dauer, Typ, etc.
Danach speicherst du das Ganze wieder zurück. Evtl. klappt das ja. Kann da da mangels Erfahrung keine Erfolgsgarantie geben.
B: Du öffnest die XML-Datei in einem Texteditor.
Jetzt kannst den Aufbau der Datei studieren. Diese besteht meist aus einem fixen Header, der die ganze Struktur eröffnet und definiert.
Diesen Teil musst du dann so wie er ist per VBA in eine Textdatei/xml-Datei schreiben.
Danach folgen dann die sich zyklisch wiederholenden XML-Zeilen, die den Datensatz beschreiben.
Diese Zeilen bestehen aus fixen Texten und den Variablen Texten mit den Inhalten der Datenzeile.
Für diese variablen Teile musst du in Excel eine Tabelle anlegen.
In einer evtl. auch mehreren geschachtelten Schleifen musst du die Datenzeilen dann abarbeiten
und dabei die Fixen und variablen Texte zu einem Zeilen-Text zusammenbauen und jeweis in die Textdatei/xml-Datei schreiben. Evtl. kannst du die Texte auch in einem 2. Tabellenblatt in die erforderliche XML-Syntax zusammenbauen. Dann musst du den Inhalt diese Tabellenblattes "nur" noch in eine Textdatei schreiben/speichern.
Zum Schluss dann noch den fixen Teil am Ende der XML-Datei an die Textdatei anfügen.
Mit etwas Glück funktioniert die so generierte Datei beim Import in MS Project.
Besondere Problem können Umlaute/ ? und andere Sonderzeichen bereiten. Diese müssen dann entsprechend Codiert im XML-Text eingefügt werden.
Gruß
Franz

Bild

Betrifft: AW: Mit VBA eine XML Datei für MS Project erzeugen
von: Willi Ediger
Geschrieben am: 20.10.2015 10:45:31
Hallo Franz,
vielen Dank für dein Feedback.
Bin gut weiter gekommen.
Habe jetzt den Code soweit, dass eine XML Datei generiert wird und in MS Project importiert werden kann. Dort werden die gewünschten Tasks auch in gewünschter Gliederung angegeben.
Nun stehe ich vor einem weiteren Problem:
Wie bekomme ich das richtige Startdatum importiert?
Aktuell wird immer nur das aktuelle Datum (19.10.) gesetzt. Ich vermute stark, dass ich im Code die entsprechenden Parameter in "Calendar" setzen muss.
Das MS Project kennt aber eine Unmenge von Kalenderparameter, alle auszuprobieren würde Wochen dauern...

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Mit VBA eine XML Datei für MS Project erzeugen "