Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Exécuter une macro Ms Project à partir d'Excel

2 réponses
Avatar
AGLAS
Bonjour à tous,

Je cherche (désespérément) le moyen de lancer une macro Ms Projec
depuis une macro Excel, le principal objectif de la manoeuvre étant d
transmettre un nom de fichier Excel à mapper et une date de début d
projet à Ms Project (et ainsi initialiser un nouveau projet). J'a
d'abord pensé naïvement que je pouvais passer ces variables e
paramètre à la macro Project sans autre formalité, mais je me suis vit
rendu compte que cela n'était pas si simple que ça. Je suis parvenu vi
ma macro Excel à exécuter Ms Project et à ouvrir un fichier contenan
une macro exécutée dans la foulée (à l'ouverture) :

ch = "C:\Program Files\Microsoft Office\Office11\WINPROJ.EX
Fichier.mpp"
returnvalue = Shell(ch, 3)

Ceci fonctionne plutôt bien, sauf qu'encore une fois le nom du fichie
à ouvrir est censé provenir d'Excel, alors le code dans Project s
limite à un nom de fichier en dure.

Bref tout ça pour dire que ma solution n'en est pas une. J'ai cr
comprendre qu'il me faudrait faire référence à Ms Project dan
l'interface VBA d'Excel, mais je n'ai pas bien pigé la procédure e
n'ai trouvé aucune info spécifique à Ms Project. J'ai soumis l
question sur quelques forums Excel mais je n'ai reçu qu'une seul
réponse... hors sujet. Un grand Merciiiii donc pour toute suggestion m
permettant d'y voir un peu plus clair

--
AGLA
-----------------------------------------------------------------------
AGLAS's Profile: http://www.msusenet.com/member.php?userid=158
View this thread: http://www.msusenet.com/t-187045457

2 réponses

Avatar
Clément Marcotte
Bonjour,

Je ne connais rien à Project, mais, personnellement, je gère ces
histoires-là de tranferts de données avec un petit fichier texte. Cela
donnerait une patente de ce genre-là:

Dans la macro Excel, avant d'appeler Project ajouter cels lignes:

Lenom = "exemple.xls" 'modifier en conséquence
Ladate = "01-6-2005" 'ajuster selon les paramètres régionaux
Open "fichiertransfert.txt" for output as 1
print #1, lenom; "," ;ladate
close 1

Puis dans la macro de Project

Open "fichiertransfert.txt" for input as 1
input #1, lenom; "," ;ladate
close 1
ladate = cdate(ladate)



--
On n' apprend pas à un vieux singe à faire des grimaces
"AGLAS" a écrit dans le message de
news:

Bonjour à tous,

Je cherche (désespérément) le moyen de lancer une macro Ms Project
depuis une macro Excel, le principal objectif de la manoeuvre étant
de

transmettre un nom de fichier Excel à mapper et une date de début de
projet à Ms Project (et ainsi initialiser un nouveau projet). J'ai
d'abord pensé naïvement que je pouvais passer ces variables en
paramètre à la macro Project sans autre formalité, mais je me suis
vite

rendu compte que cela n'était pas si simple que ça. Je suis parvenu
via

ma macro Excel à exécuter Ms Project et à ouvrir un fichier
contenant

une macro exécutée dans la foulée (à l'ouverture) :

ch = "C:Program FilesMicrosoft OfficeOffice11WINPROJ.EXE
Fichier.mpp"
returnvalue = Shell(ch, 3)

Ceci fonctionne plutôt bien, sauf qu'encore une fois le nom du
fichier

à ouvrir est censé provenir d'Excel, alors le code dans Project se
limite à un nom de fichier en dure.

Bref tout ça pour dire que ma solution n'en est pas une. J'ai cru
comprendre qu'il me faudrait faire référence à Ms Project dans
l'interface VBA d'Excel, mais je n'ai pas bien pigé la procédure et
n'ai trouvé aucune info spécifique à Ms Project. J'ai soumis la
question sur quelques forums Excel mais je n'ai reçu qu'une seule
réponse... hors sujet. Un grand Merciiiii donc pour toute suggestion
me

permettant d'y voir un peu plus clair.


--
AGLAS
--------------------------------------------------------------------
----

AGLAS's Profile: http://www.msusenet.com/member.php?userid80
View this thread: http://www.msusenet.com/t-1870454574



Avatar
Oliv'
Clément Marcotte que je salut a écrit dans

Bonjour,

Je ne connais rien à Project, mais, personnellement, je gère ces
histoires-là de tranferts de données avec un petit fichier texte. Cela
donnerait une patente de ce genre-là:

Dans la macro Excel, avant d'appeler Project ajouter cels lignes:

Lenom = "exemple.xls" 'modifier en conséquence
Ladate = "01-6-2005" 'ajuster selon les paramètres régionaux
Open "fichiertransfert.txt" for output as 1
print #1, lenom; "," ;ladate
close 1

Puis dans la macro de Project

Open "fichiertransfert.txt" for input as 1
input #1, lenom; "," ;ladate
close 1
ladate = cdate(ladate)



voici ce que j'avais trouvé pour un pb similaire

-=lolol=- que je salut a écrit dans
%
Bonjour Oliv'

Si ta macro excel était une function au lieu d'être une sub, elle
pourrait faire la même chose que ce que fait la sub mais en plus te
renvoyer une valeur ... la variable voulue (?)


Faut que je teste, mais je connais pas bien :-((

Une autre idée toute aussi saugrenue serait de passer par le presse
papier windows ... ta macro outlook lance la macro excel ... à la
fin de cette macro excel tu écris dans le presse papier le contenu
de ta variable ... puis lors du retour dans ta macro outlook tu peux
récuperer le contenu du presse papier ...


Oui j'y ai pensé mais si j'ai plusieurs variables ?


une function peut renvoyer un array de valeur


OK, testé cela marche !

tu peux concatener avant de mettre dans le presse papier et
"déconcatener" après ou même passer par des fichiers txt écrits à la
volée et effacés juste derrière


EXCELLENT !!

Peux t'on travailler en vba avec le presse papier OFFICE ?


application.cut
application.copy
application.paste


je pensais au presse papier qui contient + d'1 élément. que l'on active dans
édition/presse papier office

Sinon j'ai réussi AUSSI avec les nom masqués de Laurent LONGRE il faut
juste faire attention à la syntaxe avec les guillemets "
cela donne dans excel
novaxel = """" + ref_novaxel + """"
Application.ExecuteExcel4Macro "SET.NAME(""Nom_Test""," + novaxel + ")"

et dans outlook
résult=appExcel.ExecuteExel4Macro("nom_Test").

Cela fait donc 4 solutions à mon problème si c'est pas génial ca !!!
Merci encore !
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Bonjour à tous,

Je cherche (désespérément) le moyen de lancer une macro Ms Project
depuis une macro Excel, le principal objectif de la manoeuvre étant
de transmettre un nom de fichier Excel à mapper et une date de début
de projet à Ms Project (et ainsi initialiser un nouveau projet). J'ai
d'abord pensé naïvement que je pouvais passer ces variables en
paramètre à la macro Project sans autre formalité, mais je me suis
vite rendu compte que cela n'était pas si simple que ça. Je suis
parvenu via ma macro Excel à exécuter Ms Project et à ouvrir un
fichier contenant une macro exécutée dans la foulée (à l'ouverture) :

ch = "C:Program FilesMicrosoft OfficeOffice11WINPROJ.EXE
Fichier.mpp"
returnvalue = Shell(ch, 3)

Ceci fonctionne plutôt bien, sauf qu'encore une fois le nom du
fichier à ouvrir est censé provenir d'Excel, alors le code dans
Project se limite à un nom de fichier en dure.

Bref tout ça pour dire que ma solution n'en est pas une. J'ai cru
comprendre qu'il me faudrait faire référence à Ms Project dans
l'interface VBA d'Excel, mais je n'ai pas bien pigé la procédure et
n'ai trouvé aucune info spécifique à Ms Project. J'ai soumis la
question sur quelques forums Excel mais je n'ai reçu qu'une seule
réponse... hors sujet. Un grand Merciiiii donc pour toute suggestion
me permettant d'y voir un peu plus clair.


--
AGLAS
--------------------------------------------------------------------
---- AGLAS's Profile: http://www.msusenet.com/member.php?userid80
View this thread: http://www.msusenet.com/t-1870454574