OVH Cloud OVH Cloud

Contenu d'une variable Excel

4 réponses
Avatar
Sophie
Bonjour =E0 tous,

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.

Merci =E0 l'avance!

4 réponses

Avatar
Geo
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+

Avatar
Sophie
Rebonjour,

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+

.




Avatar
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+

.







Avatar
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.