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

ouvrir Word depuis Excel

5 réponses
Avatar
Roland Miller
Bonjour,

Dans un bureau =E2=80=A6 lorsque je souhaite acc=C3=A9der ou ouvrir Word ri=
en ne se produit.

Avec ces ligne de code ailleurs =C3=A7a fonctionne. Mais =E2=80=A6 ils ont =
Office 2010.

Selon vous =E2=80=A6 pourrait-il alors avoir un ajustement =C3=A0 faire? Pa=
r exemple au lieu de "Word.Application"?

Merci =C3=A0 l'avance.


Set wordapp =3D GetObject(, "Word.Application")=20
Set wordapp =3D CreateObject("word.Application")

5 réponses

Avatar
Geo
Bonjour
... Mais … ils ont Office 2010.

La version d'office ne devrait pas avoir d'incidence.
Voici ce que j'utilise par exemple dans Outlook :
Dim appWord As New Word.Application
Set appWord = CreateObject("Word.Application")
Il faut évidemment que la référence à Microsoft word 14.0 Object
library soit cochée.
Avatar
MichD
Le 12/03/20 à 12:21, Roland Miller a écrit :
Bonjour,
Dans un bureau … lorsque je souhaite accéder ou ouvrir Word rien ne se produit.
Avec ces ligne de code ailleurs ça fonctionne. Mais … ils ont Office 2010.
Selon vous … pourrait-il alors avoir un ajustement à faire? Par exemple au lieu de "Word.Application"?
Merci à l'avance.
Set wordapp = GetObject(, "Word.Application")
Set wordapp = CreateObject("word.Application")

Bonjour,
Geo à donner un exemple en déclarant la référence Word.
C'est plus facile de cette manière... mais si tu veux voir
quelque chose, tu dois afficher l'application en la rendant visible!
wordapp.visible =true
2 autres exemples :
'-------------------------------------
Sub Test()
'Créer une nouvelle instance de Word
'Tu n'as pas besoin d'ajouter la référence Word
'Pour ce code
Dim Wd As Object
Set Wd = CreateObject("Word.application")
'Rends l'application visible
Wd.Visible = True
'ouvre un document Word
Wd.Documents.Open ("CheminNomDufichier.docx")
End Sub
'-------------------------------------
Sub Test1()
'Si l'application Word est déjà ouverte et que tu veux
'offrir un fichier Word dans la même instance :
Dim Dc As Object, Fichier As String
Fichier = "CheminNomDufichier.docx"
Set Dc = GetObject(Fichier)
'La ligne suivante affiche dans Word le
'document demandé.
Dc.Windows(1).Visible = True
End Sub
'-------------------------------------
MichD
Avatar
MichD
Le 12/03/20 à 14:32, Roland Miller a écrit :
Merci beaucoup.
Mais j'utilise bien ce que vous me décrivez. D'ailleurs partout … ailleurs ça fonctionne.
J'avais un On Error Resume Next … que j'ai enlevé. Et à la ligne "Set wordapp = GetObject(, "Word.Application")" j'obtiens l'erreur ci-dessous.
Est-ce possible que soit Word est installé à un endroit non usuel ou qu'il serait reconnu sous un autre nom?
'**************************************
Erreur d'exécution 48
Erreur de chargement de la DLL

Pour pouvoir utiliser ceci :
Set Wordapp = GetObject(, "Word.Application")
L'application Word doit déjà être ouverte. Si Word est fermé, cela
génèrera une erreur.
Voici une manière de faire qui fait mouche à chaque fois. L'exemple n'a
pas besoin de cocher la référence Word.
Si tu préfères cocher à l'avance la référence Word, tu modifies la
déclaration des variables comme ceci :
Dim WordApp As Word.Application
dim Dc As Word.document
'--------------------------------------
Sub test()
Dim Wordapp As Object, Dc As Object
On Error Resume Next
'Si le document word est ouvert
Set Wordapp = GetObject(, "Word.Application")
'Si word n'est pas ouvert, tu as une erreur
If Err <> 0 Then
Err = 0 'Efface l'erreur
'Tu crées une nouvelle instance de Word
Set Wordapp = CreateObject("word.Application")
End If
'Rend l'application visible
Wordapp.Visible = True
'ouvre un fichier quelconque
Set Dc = Wordapp.Documents.Open("CheminNomDuDocument.docx")
End Sub
'--------------------------------------
MichD
Avatar
MichD
Le 13/03/20 à 15:04, Roland Miller a écrit :
Bonjour. Merci.
Désolé … je ne voulais pas inscrire tout le code au complet. Mais comme j'ai mentionné … tout le code que vous m'avez inclus … ça y est dans ma procédure. Je comprend très bien le GetObject et le CreateObject.
Mais malgré ceci je reçois le code d'erreur que j'ai mentionné. je fais le pas à pas et d'une façon ou l'autre Word n'est pas reconnu.

Lorsque tu crées une macro, il faut faire attention aux références que
tu ajoutes au projetVBA.
Tu supprimes la référence à l'application Word du projetVBA si elle est
cochée. Si tu as besoin de celle-ci, je t'ai donné la manière de
procéder en utilisant une procédure dans le Thisworkbook. Cette dernière
charge la référence Word à partir de la base de registre de Windows.
Encore, faut-il que Word ait été installé.
Lorsque tu as fait cela, ferme toutes les instances d'Excel, et à la
réouverture de cette dernière application, colle cette procédure dans un
module quelconque du projetVBA.
Ce qui suit doit fonctionner sur les versions d'Excel 1997 à 2019.
'--------------------------------------
Sub test()
'CHOISIR ENTRE CES 2 LIGNES DE CODE :
'Déclaration des variables sans la référence ajoutée de Word
'déclaration des variables avec la référence ajoutée
Dim WordApp As Word.Application
dim Dc As Word.document
On Error Resume Next
'Si le document word est ouvert
Set Wordapp = GetObject(, "Word.Application")
'Si word n'est pas ouvert, tu as une erreur
If Err <> 0 Then
Err = 0 'Efface l'erreur
'Tu crées une nouvelle instance de Word
Set Wordapp = CreateObject("word.Application")
End If
'Rend l'application visible
Wordapp.Visible = True
'ouvre un fichier quelconque
Set Dc = Wordapp.Documents.Open("CheminNomDuDocument.docx")
End Sub
'--------------------------------------
MichD
Avatar
MichD
Le 14/03/20 à 11:58, Roland Miller a écrit :
Bonjour,
OK merci.
J'avais vérifié la référence qui a été ajoutée. Dans leur Excel c'était Microsoft Word 14.0 alors que dans le mien c'est Microsoft Word 16.0. Je pense que cela est alors OK.
Mais lorsque vous mentionnez "'CHOISIR ENTRE CES 2 LIGNES DE CODE : " … OK … mais alors qu'elles sont-elles?
Vouliez-vous dire comme ci-dessous ou?
'Déclaration des variables sans la référence ajoutée de Word
Dim WordApp As Word.Application
'déclaration des variables avec la référence ajoutée
dim Dc As Word.document

Si tu ajoutes la référence Word à ton projetVBA, utilise ceci:
Dim WordApp As Word.Application
dim Dc As Word.document
MichD