J'aimerais savoir comment il est possible de r=E9cup=E9rer la=20
valeur d'une variable utilis=E9e dans Excel pour l'ins=E9rer=20
dans un document Word.
J'ai une macro Excel, qui appelle une macro Word. Cette=20
macro Word devrait r=E9cup=E9rer la valeur d'une variable=20
d=E9clar=E9e dans Excel.
J'ai testé votre suggestion, mais ça n'a pas fonctionné.
Voici le code que j'avais à l'origine dans mon document Word:
Sub cmdAjout()
strchemin = ActiveDocument.Path
With Selection .EndKey unit:=wdStory .InsertBreak Type:=wdPageBreak .TypeText UCase(strClientNom)'Nom de ma variable dans Excel .HomeKey unit:=wdLine, Extend:=wdExtend .Style = ActiveDocument.Styles("Titre 1") .ParagraphFormat.Alignment = wdAlignParagraphCenter .EndKey unit:=wdLine .TypeParagraph .InsertFile (strchemin & "Formulaire_Facturation.doc") End With
Merci encore
-----Message d'origine----- Bonjour Sophie
Bonjour à tous,
J'aimerais savoir comment il est possible de récupérer la
valeur d'une variable utilisée dans Excel pour l'insérer dans un document Word.
J'ai une macro Excel, qui appelle une macro Word. Cette macro Word devrait récupérer la valeur d'une variable déclarée dans Excel.
Une suggestion : WordObj.Selection.InsertAfter TaVariable Pas testé.
--
A+
.
Anacoluthe
Bonjour !
'Sophie' nous a écrit ...
J'ai testé votre suggestion, mais ça n'a pas fonctionné.
Votre variable d'un module Excel ne peut avoir de 'portée' dans un module Word. Vous devez passer par un tiers (une cellule XL, un signet, une docvariable, un fichier texte, une clé de registre, le presse-papiers, une variable d'environnement etc etc etc) Autre solution : recopiez votre macro cmdAjout dans Excel en remplaçant Selection par AppWord.Selection et ActiveDocument par AppWord.ActiveDocument. Dans cette macro /Excel/ vous pouvez utiliser directement votre variable. En réalité c'est exactement ça que vous proposait Geo mais vous n'avez probablement pas correctement instancié l'application Word dans Excel...
Anacoluthe « Les lois claires en théorie sont souvent un chaos à l'application. » - Napoléon BONAPARTE
Voici le code que j'avais à l'origine dans mon document Word:
Sub cmdAjout()
strchemin = ActiveDocument.Path
With Selection .EndKey unit:=wdStory .InsertBreak Type:=wdPageBreak .TypeText UCase(strClientNom)'Nom de ma variable dans Excel .HomeKey unit:=wdLine, Extend:=wdExtend .Style = ActiveDocument.Styles("Titre 1") .ParagraphFormat.Alignment = wdAlignParagraphCenter .EndKey unit:=wdLine .TypeParagraph .InsertFile (strchemin & "Formulaire_Facturation.doc") End With
Merci encore
-----Message d'origine----- Bonjour Sophie
Bonjour à tous,
J'aimerais savoir comment il est possible de récupérer
la
valeur d'une variable utilisée dans Excel pour l'insérer dans un document Word.
J'ai une macro Excel, qui appelle une macro Word. Cette macro Word devrait récupérer la valeur d'une variable déclarée dans Excel.
Une suggestion : WordObj.Selection.InsertAfter TaVariable Pas testé.
--
A+
.
Bonjour !
'Sophie' nous a écrit ...
J'ai testé votre suggestion, mais ça n'a pas fonctionné.
Votre variable d'un module Excel ne peut avoir de 'portée' dans
un module Word. Vous devez passer par un tiers (une cellule XL,
un signet, une docvariable, un fichier texte, une clé de registre,
le presse-papiers, une variable d'environnement etc etc etc)
Autre solution : recopiez votre macro cmdAjout dans Excel
en remplaçant Selection par AppWord.Selection et ActiveDocument
par AppWord.ActiveDocument. Dans cette macro /Excel/ vous pouvez
utiliser directement votre variable.
En réalité c'est exactement ça que vous proposait Geo mais
vous n'avez probablement pas correctement instancié l'application
Word dans Excel...
Anacoluthe
« Les lois claires en théorie sont souvent un chaos à l'application. »
- Napoléon BONAPARTE
Voici le code que j'avais à l'origine dans mon document
Word:
Sub cmdAjout()
strchemin = ActiveDocument.Path
With Selection
.EndKey unit:=wdStory
.InsertBreak Type:=wdPageBreak
.TypeText UCase(strClientNom)'Nom de ma
variable dans Excel
.HomeKey unit:=wdLine, Extend:=wdExtend
.Style = ActiveDocument.Styles("Titre 1")
.ParagraphFormat.Alignment =
wdAlignParagraphCenter
.EndKey unit:=wdLine
.TypeParagraph
.InsertFile (strchemin
& "Formulaire_Facturation.doc")
End With
Merci encore
-----Message d'origine-----
Bonjour Sophie
Bonjour à tous,
J'aimerais savoir comment il est possible de récupérer
la
valeur d'une variable utilisée dans Excel pour l'insérer
dans un document Word.
J'ai une macro Excel, qui appelle une macro Word. Cette
macro Word devrait récupérer la valeur d'une variable
déclarée dans Excel.
Une suggestion :
WordObj.Selection.InsertAfter TaVariable
Pas testé.
J'ai testé votre suggestion, mais ça n'a pas fonctionné.
Votre variable d'un module Excel ne peut avoir de 'portée' dans un module Word. Vous devez passer par un tiers (une cellule XL, un signet, une docvariable, un fichier texte, une clé de registre, le presse-papiers, une variable d'environnement etc etc etc) Autre solution : recopiez votre macro cmdAjout dans Excel en remplaçant Selection par AppWord.Selection et ActiveDocument par AppWord.ActiveDocument. Dans cette macro /Excel/ vous pouvez utiliser directement votre variable. En réalité c'est exactement ça que vous proposait Geo mais vous n'avez probablement pas correctement instancié l'application Word dans Excel...
Anacoluthe « Les lois claires en théorie sont souvent un chaos à l'application. » - Napoléon BONAPARTE
Voici le code que j'avais à l'origine dans mon document Word:
Sub cmdAjout()
strchemin = ActiveDocument.Path
With Selection .EndKey unit:=wdStory .InsertBreak Type:=wdPageBreak .TypeText UCase(strClientNom)'Nom de ma variable dans Excel .HomeKey unit:=wdLine, Extend:=wdExtend .Style = ActiveDocument.Styles("Titre 1") .ParagraphFormat.Alignment = wdAlignParagraphCenter .EndKey unit:=wdLine .TypeParagraph .InsertFile (strchemin & "Formulaire_Facturation.doc") End With
Merci encore
-----Message d'origine----- Bonjour Sophie
Bonjour à tous,
J'aimerais savoir comment il est possible de récupérer
la
valeur d'une variable utilisée dans Excel pour l'insérer dans un document Word.
J'ai une macro Excel, qui appelle une macro Word. Cette macro Word devrait récupérer la valeur d'une variable déclarée dans Excel.
Une suggestion : WordObj.Selection.InsertAfter TaVariable Pas testé.
--
A+
.
Clément Marcotte
Bonjour,
Une solution de paresseux qui n'a pas envie de se casser la tête.
Utilise un banal fichier texte.
À quelque part dans la macro d'Excel, une fois que la valeur de la variable a été déterminée:
open "variable.txt" for output as 1 print #1, strclientnom close 1
Puis change la procédure que tu viens cde mettre ici, pour qu'elle ressemble à cela:
Sub cmdAjout()
open "variable.txt" for input as 1 input #1, strClientNom close 1
strchemin = ActiveDocument.Path
With Selection .EndKey unit:=wdStory .InsertBreak Type:=wdPageBreak .TypeText UCase(strClientNom)'Nom de ma variable dans Excel .HomeKey unit:=wdLine, Extend:=wdExtend .Style = ActiveDocument.Styles("Titre 1") .ParagraphFormat.Alignment wdAlignParagraphCenter .EndKey unit:=wdLine .TypeParagraph .InsertFile (strchemin & "Formulaire_Facturation.doc") End With
Avec un peu de chance, cela devrait aller. Sinon, cela va ressembler, AMHA, à une histoire de liens OLE pas faciles à gérer.
Bonjour,
Une solution de paresseux qui n'a pas envie de se casser la tête.
Utilise un banal fichier texte.
À quelque part dans la macro d'Excel, une fois que la valeur de la
variable a été déterminée:
open "variable.txt" for output as 1
print #1, strclientnom
close 1
Puis change la procédure que tu viens cde mettre ici, pour qu'elle
ressemble à cela:
Sub cmdAjout()
open "variable.txt" for input as 1
input #1, strClientNom
close 1
strchemin = ActiveDocument.Path
With Selection
.EndKey unit:=wdStory
.InsertBreak Type:=wdPageBreak
.TypeText UCase(strClientNom)'Nom de ma
variable dans Excel
.HomeKey unit:=wdLine, Extend:=wdExtend
.Style = ActiveDocument.Styles("Titre 1")
.ParagraphFormat.Alignment wdAlignParagraphCenter
.EndKey unit:=wdLine
.TypeParagraph
.InsertFile (strchemin
& "Formulaire_Facturation.doc")
End With
Avec un peu de chance, cela devrait aller. Sinon, cela va ressembler,
AMHA, à une histoire de liens OLE pas faciles à gérer.