OVH Cloud OVH Cloud

VBA - variable valide sur excel et Word

6 réponses
Avatar
dieu08
Salut,

J'ai r=E9alis=E9 un 'tit prog en VB sur Excel pour piloter un
publipostage Word dont la base de donn=E9e est sur Excel. Mon prog Excel
renvoie =E0 une macro sous word int=E9gr=E9 dans la lettre type.

Mais j'ai absolument besoin d'utiliser une variable d=E9finie dans le
prog Excel dans la macro Word. Et je ne parviens pas =E0 trouver comment
faire pour "transf=E9rer" la valeur de cette variable dans le module
Word.

Si vous avez une id=E9e sur les commandes =E0 employer ....

Merci.

6 réponses

Avatar
papou
Bonjour
Une solution peut consister en l'appel de Word via la macro Excel, dans ces
conditions tu pourras récupérer ta variable.
Une autre peut consister en l'écriture de la variable Excel dans un fichier
texte puis de sa lecture dans Word.

Cordialement
Pascal
Avatar
dieu08
Salut,

Ma macro excel appelle word et ensuite fait référence à une macro
Word :

Select Case Sheets("1").Cells(2, 1).Value
Case 1
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
.Documents.Open Filename:="C:Documents and
SettingsfrvaralliBureautestlettreC.doc"
.Run "Macro1"
End With
Sheets("A remplir").Activate
Cells(1, 1).Activate
Case 2
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
.Documents.Open Filename:="C:Documents and
SettingsfrvaralliBureautestlettreG.doc"
.Run "Macro1"
End With
Sheets("A remplir").Activate
Cells(1, 1).Activate
Case 3
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
.Documents.Open Filename:="C:Documents and
SettingsfrvaralliBureautestAR.doc"
.Run "Macro1"
End With
Sheets("A remplir").Activate
Cells(1, 1).Activate
End Select

Je fais référence à Macro1 qui se trouve dans mon courrier. Comme
je n'arrive pas à faire mon publipostage/ fusion directement dans
excel, j'ai été obligé de faire cette macro dans word :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 29/03/2006 par frvaralli
'
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:Documents and SettingsfrvaralliBureautestadresse.xls",
_
ConfirmConversions:úlse, ReadOnly:úlse, LinkToSource:=Tru e,
_
AddToRecentFiles:úlse, PasswordDocument:="",
PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="",
Revert:úlse, _
Format:=wdOpenFormatAuto, Connection:= _
"DSN=Excel Files;DBQ=C:Documents and
SettingsfrvaralliBureautestadresse.xls;DriverIdy0;MaxBufferSize=2 048;PageTimeout=5;"
_
, SQLStatement:="SELECT * FROM `'1$'`", SQLStatement1:=""
ActiveDocument.MailMerge.DataSource.QueryString = _
"SELECT * FROM `'1$'` WHERE ((`Courriers` = 1))" & ""
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With

Windows("Lettres types1.doc").Activate
Windows("lettreC.doc").Close

End Sub

Si tu parviens à m'aider pour tout mettre sous excel ca m'arrangerait.
Mais la question de départ reste identique : puis-je "transférer" une
variable définie dans Excel dans Word ?
Avatar
papou
Re
Je ne comprends pas bien : ou est la variable qui te pose problème ?
Si ton problème réside dans le fait de l'appel de la macro Macro1 du
document Word ouvert par ta procédure dans Excel, tu dois utiliser une
syntaxe comme celle-ci (tu modifies avec le nom du module de la macro
Macro1:
AppWord.Run ""AR.doc'!ThisModule.Macro1"

Cordialement
Pascal
Avatar
dieu08
On va repartir de zéro car je m'emmele dans mes explications.

J'ai un prog sur excel indépendant et un prog wrod indépendant.

Une variable définie dans le prog Excel. Comment utiliser cette
variable dans le prog Word ? Ou comment faire un transfert de variable ?
Avatar
Ange Ounis
Le plus simple, AMHA, est de passer par un espace de stockage extérieur à Word
et à Excel. Cela peut être un petit fichier texte où tu enregistres la valeur à
partager entre les 2 applications, ou une entrée dans la base de registre que
les 2 applications peuvent aller lire et modifier.

----------
Ange Ounis
----------

On va repartir de zéro car je m'emmele dans mes explications.

J'ai un prog sur excel indépendant et un prog wrod indépendant.

Une variable définie dans le prog Excel. Comment utiliser cette
variable dans le prog Word ? Ou comment faire un transfert de variable ?



Avatar
dieu08
Merci pour ce conseil, j'ai farfouillé un peu et je crois que la
solution la plus simple est effectivement d'inscrire la variable dans
un fichier texte par excel. Et de l'autre côté faire lire la varible
par Word.

J'ai fait le test ca fonctionne apparemment bien.

On cherche compliqué alors que c'est parfois si simple ....

Merci en tous les cas !