Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel auf MS Project zugreifen

Excel auf MS Project zugreifen
Thomas
Servus liebe VBA-Gemeinde
Also erst mal hab ich prinzipiell die Frage wie gut man mit Excel auf MS Project zugreifen kann (VBA).
Genauer möchte ich folgendes durchführen.
In Excel habe ich eine Liste mit "SAP Nummern" (Spalte 16) und dem "Status" (Spalte 1).
In MS Projekt steht bei den Vorgängen eine Spalte "SAP-Elemente" und daneben eine Spalte "Status".
Nun möchte ich die Projekt Datei auf Excel synchronisieren.
D.h er soll in Excel die SAP Nummern durchgehen, nachschauen ob die in Projekt stehen und wenn ja, dann soll er den "Status" (ist ein Text, kein Prozent) von Excel in Projekt schreiben.
Ich kenn mich zwar einigermaßen in Excel VBA aus, aber nicht in VBA Projekt. Mit den Makrorekoder ist momentan kein weiterkommen möglich.
Würde mich freuen wenn mir jemand weiterhelfen könnte.
gruß
thoemmy

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel auf MS Project zugreifen
14.04.2010 00:53:40
fcs
Hallo Thoemmy,
im Prinzip funktioniert das recht gut, man muss sich aber sehr gut in der Objekt-/Datenstruktur von MS-Projekt auskennen und wie immer hat Microsoft es geschafft, gleichartige Methoden in den verschiedenen Anwendungen unterschiedlich zu benennen.
Man kann den Datenabgleich sowohl von MS Project aus, was bei meinen Versuchen sogar reibungsloser funktionierte, als auch von Excel aus durchführen. Die Problem von Excel aus lagen wahrscheinlich z.T. darin begründet, dass ich mit einer MS Projekt 2010 beta-Version arbeite und beim Starten der Anwendung immer die Abfrage nach einem Product-Key erfolgt.
Mit der Spalte Status könntest du allerdings Probleme bekommen. Dies ist in MS Project ein berechneter Wert basierend auf den Datums-Angaben(Start/Ende), aktuellem Datum und dem Wert von "% abgeschlossen". Den Status kann man nicht editieren. Es sei denn, du hast dir da irgendetwas spezielles zurecht gebastelt. Status hat die folgenden Werte:
pjComplete   0   Vorgang abgeschlossen.
pjFutureTask 3   Zukünftiger Vorgang.
pjLate       2   Verspäteter Vorgang.
pjNoData     4   Status nicht verfügbar.
pjOnSchedule 1   Vorgang termingerecht. 

Nachfolgend zwei Beispiel-Makros für den Datenaustausch Excel--MS Project. Die Angaben zu "PercentCompleted" (% abgeschlossen) werden aus einem Excel-Blatt nach Project übertragen. Dabei werden die PSP-Codes aller Tasks in der Project-Datei in einer Schleife durchlaufen und im Exceltabellenblatt gesucht. Wenn gefunden, dann wird der Wert übertragen.
Gruß
Franz
'####       VBA-Makro in MS Project 2010 beta erstellt     ######
'Abgleich mit Informationen in Excel-Datei, Exceldatei sollte vor Start des Makros geschlossen  _
sein.
'Im MS Project-VBA-Editor muss der Verweis auf die
'Microsoft Excel Object Library
'gesetzt werden!!
Sub Suchen_PSP()
' PSP_Element in Exceldatei suchen und "% abgeschlossen" einlesen suchen
Dim xlApp As Object, xlWb As Excel.Workbook, xlWks As Excel.Worksheet, _
xlRange As Excel.Range
Dim oProject As Project, oTask As Task, sPSP_Code$, sStatus
Set oProject = Application.Projects("ProjektTest01.mpp")
Set xlApp = VBA.CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open(FileName:="C:\Users\Public\Test\WBS_Status.xls", _
ReadOnly:=True)
Set xlWks = xlWb.Worksheets(1)
With oProject
For Each oTask In .Tasks
sPSP_Code = oTask.WBS 'PSP-Element in Project
'PSP-Element in Excel-Tabelle Spalte A suchen
Set xlRange = xlWks.Columns(1).Find(what:=sPSP_Code, LookIn:=xlValues, _
lookat:=xlWhole)
If xlRange Is Nothing Then
Else
MsgBox sPSP_Code & " - Status=" & oTask.Status
oTask.PercentComplete = xlRange.Offset(0, 1).Value
MsgBox sPSP_Code & " - Status=" & oTask.Status
End If
Next
End With
xlWb.Close savechanges:=False
xlApp.Quit
MsgBox " Abgleich mit Exceldatei abgeschlossen"
End Sub
'##########         Erstellt mit Excel 2007     #########
'Getestet mit MS Project 2010 beta, MS Project muss vor Start des Makros geöffnet sein
'Variante mit Create-Objekt funktionierte nicht, möglicher Weise wegen Beta-Version
'Im Excel-VBA-Editor muss der Verweis auf die
'Microsoft Project Object Library
'gesetzt werden!!
Option Explicit
Sub Abgleich_PSP_Mit_Project()
' PSP_Element in Exceldatei suchen und "% abgeschlossen" einlesen
Dim proApp As Object, proProject As MSProject.Project, proTask As MSProject.Task
Dim wb As Workbook, wks As Worksheet, sPSP_Code$, Zelle As Range
Set wb = ActiveWorkbook
Set wks = wb.Worksheets(1)
Application.ActivateMicrosoftApp (xlMicrosoftProject)
MSProject.FileOpenEx Name:= _
"C:\Users\Admin\Documents\ProjektTest01.mpp", _
ReadOnly:=False, FormatID:="MSProject.MPP"
Set proProject = ActiveProject
With proProject
For Each proTask In .Tasks
sPSP_Code = proTask.WBS
Set Zelle = wks.Columns(1).Find(what:=sPSP_Code, LookIn:=xlValues, _
lookat:=xlWhole)
If Zelle Is Nothing Then
Else
MsgBox sPSP_Code & " - Status=" & proTask.Status
proTask.PercentComplete = Zelle.Offset(0, 1).Value
MsgBox sPSP_Code & " - Status=" & proTask.Status
End If
Next
End With
FileSave
MSProject.FileCloseEx
ActiveWorkbook.Activate
MsgBox " Abgleich MS-Project - Exceldatei abgeschlossen"
End Sub

Anzeige
AW: Excel auf MS Project zugreifen
14.04.2010 14:32:50
Thomas
Sau cool. Werd ich gleich mal anpassen und testen.
Meld mich dann ob es funzt.
Vielen Dank schonmal.
gruß
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige