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

Vba : comment passer une variable de vba Excel vers vba Word ?

2 réponses
Avatar
Jac
Bonjour à tous,

dans une procédure liée à du publipostage Word commandé depuis Excel, je
calcule dans Excel le nom du fichier résultant du publipostage.

J'aimerais mémoriser ce nom dans Excel pour le passer à mon modèle Word,
dans la procédure Private Sub Document_New() afin de pouvoir enregistrer le
fichier depuis Word.

Au départ, je voulais commander l'enregistrement depuis Excel, mais pas
moyen d'y arriver. Donc je dois ma rabattre sur Word pour y arriver.

Merci d'avance à qui pourrait me mettre sur la voie.

Jac

2 réponses

Avatar
tissot.emmanuel
Bonjour,

Dans Excel, dans un module standard:

Public VariablePourWord As String

Function RetourneVariable() As String
RetourneVariable = VariablePourWord
End Function

Dans Word: Cocher la référence à Microsoft Excel xx.y Object Library

Sub LireVariableExcel()
Dim Myxl As Excel.Application, MyBook As Excel.Workbook, Retour As
String

Set Myxl = CreateObject("Excel.Application")
Myxl.Application.Visible = False 'Utile ou pas ?
Set MyBook = Myxl.Workbooks.Open("C:.....NomClasseur.xls")'Adapter le
chemin et le nom de fichier

'Si le fichier Excel est deja ouvert utiliser remplacer les lignes
ci-dessus par
'Set Myxl = GetObject(, "Excel.Application")
'Set MyBook = Myxl.Workbooks("NomClasseur.xls")'Adapter le nom de
fichier


Retour = Myxl.Application.Run(MyBook.Name & "!" & "RetourneVariable ")
Myxl.Quit 'Ferme Excel
DoEvents

MsgBox Retour 'Recupere la variable
Set Myxl = Nothing
End Sub

C'est pas excessivement rapide, mais ca reste exploitable.

Bonne chance,

Manu/

"Jac" a écrit dans le message de news:

Bonjour à tous,

dans une procédure liée à du publipostage Word commandé depuis Excel, je
calcule dans Excel le nom du fichier résultant du publipostage.

J'aimerais mémoriser ce nom dans Excel pour le passer à mon modèle Word,
dans la procédure Private Sub Document_New() afin de pouvoir enregistrer
le fichier depuis Word.

Au départ, je voulais commander l'enregistrement depuis Excel, mais pas
moyen d'y arriver. Donc je dois ma rabattre sur Word pour y arriver.

Merci d'avance à qui pourrait me mettre sur la voie.

Jac




Avatar
Jac
Bonjour Emmanuel,

merci de t'être penché sur mon problème.
Je teste et j'adapte...

"tissot.emmanuel" a écrit dans le message de news:
%
Bonjour,

Dans Excel, dans un module standard:

Public VariablePourWord As String

Function RetourneVariable() As String
RetourneVariable = VariablePourWord
End Function

Dans Word: Cocher la référence à Microsoft Excel xx.y Object Library

Sub LireVariableExcel()
Dim Myxl As Excel.Application, MyBook As Excel.Workbook, Retour As
String

Set Myxl = CreateObject("Excel.Application")
Myxl.Application.Visible = False 'Utile ou pas ?
Set MyBook = Myxl.Workbooks.Open("C:.....NomClasseur.xls")'Adapter le
chemin et le nom de fichier

'Si le fichier Excel est deja ouvert utiliser remplacer les lignes
ci-dessus par
'Set Myxl = GetObject(, "Excel.Application")
'Set MyBook = Myxl.Workbooks("NomClasseur.xls")'Adapter le nom de
fichier


Retour = Myxl.Application.Run(MyBook.Name & "!" & "RetourneVariable ")
Myxl.Quit 'Ferme Excel
DoEvents

MsgBox Retour 'Recupere la variable
Set Myxl = Nothing
End Sub

C'est pas excessivement rapide, mais ca reste exploitable.

Bonne chance,

Manu/

"Jac" a écrit dans le message de news:

Bonjour à tous,

dans une procédure liée à du publipostage Word commandé depuis Excel, je
calcule dans Excel le nom du fichier résultant du publipostage.

J'aimerais mémoriser ce nom dans Excel pour le passer à mon modèle Word,
dans la procédure Private Sub Document_New() afin de pouvoir enregistrer
le fichier depuis Word.

Au départ, je voulais commander l'enregistrement depuis Excel, mais pas
moyen d'y arriver. Donc je dois ma rabattre sur Word pour y arriver.

Merci d'avance à qui pourrait me mettre sur la voie.

Jac