OVH Cloud OVH Cloud

pilotage word depuis excel

4 réponses
Avatar
Aurélien
bonjour,

je dois auto remplir des documents word via des données stockées sous Excel.
j'ai trouve sur le net comment faire sauf qu'il y a un point tres épineux,
toutes mon entreprise n'a pas la même version de word, j'ai du 9.0 et du 11.0
Cela provoque une erreur au niveau de la référence aux composants Word9.0 ou
Word 11.0 (qui me sont necessaires pour créer l'objet Word et l'utiliser) et
comme la référence à ces composants est liés au fichier et non à
l'ordinateur, je ne sais pas comment faire pour pouvoir piloter toutes les
versions de word à partir de ma macro. (je me vois pas donner à chaque
utilisateur le mot de passe pour déverouiller le code et modifier les
références)

si quelqu'un connait une astuce, merci de la partager

cordialement
A. DUCHAMP

4 réponses

Avatar
Aurélien
honte sur moi !
la solution était déja sur ce forum et je l'ai vu aprés avoir posté mon
message
il suffisait donc de faire

Dim appWD As Object

Set appWD = CreateObject("Word.Application")
appWD.documents.Open Filename:="documentmode d'emploi.doc"



bonjour,

je dois auto remplir des documents word via des données stockées sous Excel.
j'ai trouve sur le net comment faire sauf qu'il y a un point tres épineux,
toutes mon entreprise n'a pas la même version de word, j'ai du 9.0 et du 11.0
Cela provoque une erreur au niveau de la référence aux composants Word9.0 ou
Word 11.0 (qui me sont necessaires pour créer l'objet Word et l'utiliser) et
comme la référence à ces composants est liés au fichier et non à
l'ordinateur, je ne sais pas comment faire pour pouvoir piloter toutes les
versions de word à partir de ma macro. (je me vois pas donner à chaque
utilisateur le mot de passe pour déverouiller le code et modifier les
références)

si quelqu'un connait une astuce, merci de la partager

cordialement
A. DUCHAMP


Avatar
michdenis
Bonjour Aurélien

Avec ceci, tu n'est plus obligé d'insérer une référence dans ton projetVBA. Évidemment, Word doit être installé sur l'ordinateur !

'------------------------------
Sub OuvrirWord()

Dim Wd As Object, Doc As Object

On Error Resume Next
Set Wd = GetObject(, "Word.application")
If Err <> 0 Then
On Error GoTo 0
Set Wd = CreateObject("word.application")
End If
Wd.Visible = True

'Doc représente une variable qui est le document
'que tu viens d'ouvrir.
Set Doc = Wd.documents.Open("c:MonDoc.doc")
'.../... le reste de ta macro.

End Sub
'---------------------------------

Salutations!



"Aurélien" a écrit dans le message de news:

bonjour,

je dois auto remplir des documents word via des données stockées sous Excel.
j'ai trouve sur le net comment faire sauf qu'il y a un point tres épineux,
toutes mon entreprise n'a pas la même version de word, j'ai du 9.0 et du 11.0
Cela provoque une erreur au niveau de la référence aux composants Word9.0 ou
Word 11.0 (qui me sont necessaires pour créer l'objet Word et l'utiliser) et
comme la référence à ces composants est liés au fichier et non à
l'ordinateur, je ne sais pas comment faire pour pouvoir piloter toutes les
versions de word à partir de ma macro. (je me vois pas donner à chaque
utilisateur le mot de passe pour déverouiller le code et modifier les
références)

si quelqu'un connait une astuce, merci de la partager

cordialement
A. DUCHAMP
Avatar
ClémentMarcotte
Bonjour,

Cela provoque une erreur au niveau de la référence aux composants Word9.0
ou

Word 11.0 (qui me sont necessaires pour créer l'objet Word et l'utiliser)
et


Je ne peux pas voir. En principe, si tu utilises getobject, createobject ou
new avec "word.application" l'ajustement est automatique.

Avatar
michdenis
Bonjour Clément,

Le problème se situe au niveau de la déclaration des variables !

L'utilisation de ceci est impossible sans avoir la référence :

Dim Wd As Word.Application
set Wd = createobject(......)


Dim Wd1 As New Word.Application
wd1.documents.open ....


Salutations!



"ClémentMarcotte" a écrit dans le message de news:
Bonjour,

Cela provoque une erreur au niveau de la référence aux composants Word9.0
ou

Word 11.0 (qui me sont necessaires pour créer l'objet Word et l'utiliser)
et


Je ne peux pas voir. En principe, si tu utilises getobject, createobject ou
new avec "word.application" l'ajustement est automatique.