[vba] pilotage excel à partir de outllook et variable
Le
Oliv'
Bonjour,
J'ai une macro qui pilote excel à partir de outlook,
j'ouvre un classeur et execute une macro excel de ce classeur.
j'aimerai récupérer dans ma macro outllook une variable générée dans la sous
macro excel.
Comment puis-je faire ?
Je pensais la définir comme public mais j'ai du oublier quelque chose :-((
extrait du code
Public ref_novaxel
Sub EDIavecFichiers()
On Error Resume Next
If objAtt.FileName = "ficCompagnie_VE.xsv" Then
'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
Dim xlmacroBook As Excel.Workbook
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("c:\temp\edi_attach\" &
objAtt.FileName)
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
appExcel.Visible = False
Set xlmacroBook = appExcel.Workbooks.Open("\\toto\MACRO_EDI.xls")
''' Run a macro in the workbook.
wbExcel.Activate
appExcel.Run xlmacroBook.Name & "!ouverture"
MsgBox ref_novaxel ' c'est cette variable qui est créée par la macro
excel ouverture !!!!!
End Sub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
J'ai une macro qui pilote excel à partir de outlook,
j'ouvre un classeur et execute une macro excel de ce classeur.
j'aimerai récupérer dans ma macro outllook une variable générée dans la sous
macro excel.
Comment puis-je faire ?
Je pensais la définir comme public mais j'ai du oublier quelque chose :-((
extrait du code
Public ref_novaxel
Sub EDIavecFichiers()
On Error Resume Next
If objAtt.FileName = "ficCompagnie_VE.xsv" Then
'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
Dim xlmacroBook As Excel.Workbook
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("c:\temp\edi_attach\" &
objAtt.FileName)
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
appExcel.Visible = False
Set xlmacroBook = appExcel.Workbooks.Open("\\toto\MACRO_EDI.xls")
''' Run a macro in the workbook.
wbExcel.Activate
appExcel.Run xlmacroBook.Name & "!ouverture"
MsgBox ref_novaxel ' c'est cette variable qui est créée par la macro
excel ouverture !!!!!
End Sub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Poser une question


n'ayant que très peu peur du ridicule, je tente une(s) réponse(s) :-)
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 (?)
Notons que je ne sait pas si une function peut renvoyer son résultat d'une
application à l'autre (peut être le même problème que pour ta variable)
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 ...
Dernière cartouche, poster ta question sur mpfe
(news://news.microsoft.com/microsoft...c.fr.excel) ou circulent quelques
fines lames sur vba ... j'espère qu' Isa ne me tiendra pas rigueur de cette
dernière remarque :-)
cordialement
@+lolo
ca ne me semble pas ridicule du tout !!!
Faut que je teste, mais je connais pas bien :-((
Oui j'y ai pensé mais si j'ai plusieurs variables ?
Peux t'on travailler en vba avec le presse papier OFFICE ?
Fait en même temps !
Il y a Une solution sur le site de Laurent LONGRE qui semble pas mal
http://xcell05.free.fr/pages/prog/h...ce.htm#VBA
et qui utilise les noms masqués mais j'ai des erreurs 2029
Sinon en attendant de trouver une meilleure solution j'ai copié la variable
dans une cellule, que je viens relire dans ma macro principale.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
une function peut renvoyer un array de valeur
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
application.cut
application.copy
application.paste
hth
@+lolo
Dans la macro Outlook :
''' Run a macro in the workbook.
wbExcel.Activate
appExcel.Run xlmacroBook.Name & "!ouverture", ref_novaxel
MsgBox ref_novaxel ' c'est cette variable qui est créée par la macro excel ouverture !!!!!
Et dans la macro Excel
Sub ouverture(MaVar)
'Le code de ta macro
mavar = La valeur que tu veux récupérer
end sub
Alain CROS
"Oliv'"
%
Alain j'ai essayé ta méthode mais ca ne marche pas, j'ai du me tromper :-(
c'est en sortie de la procédure excel que je veux récupérer une de ses
variables dans la procédure outlook
n'est ce pas réservé aux Function comme me le précisé lolo ?
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~