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

Ouvrir Document Word a partir d'excel

8 réponses
Avatar
Lionel
Bonjour,

Je voudrais pouvoir ouvrir un fichier Word (.doc) a partir d'un bouton dans
excel.

j'ai essaye

Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")appWD.Documents.Open
Filename:="C:\WINDOWS\Bureau\Planning\aide.doc"

mais une erreur type defini par utilisateur non defini...

Par ailleurs est -il possible de verifier par la meme occasion qu'il n'est
pas deja ouvert?
Merci de l'aide
Lionel

8 réponses

Avatar
papou
Bonjour

Dim appwd As Object
Dim docwd As Object
On Error Resume Next
Set appwd = GetObject(, "Word.Application")
If Err <> 0 Then
Set appwd = CreateObject("Word.Application")
On Error GoTo 0
End If
appwd.Visible = True
On Error Resume Next
appwd.Windows("test.doc").Activate
If Err <> 0 Then
Set dcwd = appwd.Documents.Open("C:test.doc")
On Error GoTo 0
appwd.Activate
End If

Cordialement
Pascal

"Lionel" a écrit dans le message de news:
4624ca45$0$27401$
Bonjour,

Je voudrais pouvoir ouvrir un fichier Word (.doc) a partir d'un bouton
dans
excel.

j'ai essaye

Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")appWD.Documents.Open
Filename:="C:WINDOWSBureauPlanningaide.doc"

mais une erreur type defini par utilisateur non defini...

Par ailleurs est -il possible de verifier par la meme occasion qu'il n'est
pas deja ouvert?
Merci de l'aide
Lionel




Avatar
Lionel
Merci Papou ! Ca fonctionne bien!
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour

Dim appwd As Object
Dim docwd As Object
On Error Resume Next
Set appwd = GetObject(, "Word.Application")
If Err <> 0 Then
Set appwd = CreateObject("Word.Application")
On Error GoTo 0
End If
appwd.Visible = True
On Error Resume Next
appwd.Windows("test.doc").Activate
If Err <> 0 Then
Set dcwd = appwd.Documents.Open("C:test.doc")
On Error GoTo 0
appwd.Activate
End If

Cordialement
Pascal

"Lionel" a écrit dans le message de news:
4624ca45$0$27401$
Bonjour,

Je voudrais pouvoir ouvrir un fichier Word (.doc) a partir d'un bouton
dans
excel.

j'ai essaye

Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")appWD.Documents.Open
Filename:="C:WINDOWSBureauPlanningaide.doc"

mais une erreur type defini par utilisateur non defini...

Par ailleurs est -il possible de verifier par la meme occasion qu'il
n'est


pas deja ouvert?
Merci de l'aide
Lionel








Avatar
MichDenis
Si je peux me permettre papou ...

Si tu utilisais des majuscules dans le nom de tes variables
un peu comme les mots résservés de Visual basic, cela
t'aiderait à percevoir rapidement, si tu as fait une faute
d'orthographe sur le nom des variables (moi ça m'aide ...-))) )

ça pourrait donner ceci :
Dim AppWd As Object
Dim DocWd As Object

Et au lieu de répéter On error resume next et On error goto 0
si tu remplaces On error goto 0 par Err.Clear ou Err = 0, tu
n'auras qu'à indiquer une seule fois On error resume next ->
ça fait moins peur à l'usager ...;-))


Dim AppWd As Object
Dim DocWd As Object
On Error Resume Next
Set AppWd = GetObject(, "Word.Application")
If Err <> 0 Then Err.Clear
Set AppWd = CreateObject("Word.Application")
AppWd.Visible = True
AppWd.Windows("test.doc").Activate
If Err <> 0 Then Err = 0
Set dcwd = AppWd.Documents.Open("C:denis1.doc")
If Err <> 0 Then Err.Clear
AppWd.Activate
Avatar
papou
Bonjour Denis
Si je peux me permettre papou ...
Bien sûr que tu peux ;-)

Pour l'utilisation des majuscules c'est bien ce que je fais
systématiquement, mais effectivement pas toujours lors de mes réponses.
Pour la méthode de On Error Resume Next, tu as raison : c'est une meilleure
approche.

Cordialement
Pascal

"MichDenis" a écrit dans le message de news:

Si je peux me permettre papou ...

Si tu utilisais des majuscules dans le nom de tes variables
un peu comme les mots résservés de Visual basic, cela
t'aiderait à percevoir rapidement, si tu as fait une faute
d'orthographe sur le nom des variables (moi ça m'aide ...-))) )

ça pourrait donner ceci :
Dim AppWd As Object
Dim DocWd As Object

Et au lieu de répéter On error resume next et On error goto 0
si tu remplaces On error goto 0 par Err.Clear ou Err = 0, tu
n'auras qu'à indiquer une seule fois On error resume next ->
ça fait moins peur à l'usager ...;-))


Dim AppWd As Object
Dim DocWd As Object
On Error Resume Next
Set AppWd = GetObject(, "Word.Application")
If Err <> 0 Then Err.Clear
Set AppWd = CreateObject("Word.Application")
AppWd.Visible = True
AppWd.Windows("test.doc").Activate
If Err <> 0 Then Err = 0
Set dcwd = AppWd.Documents.Open("C:denis1.doc")
If Err <> 0 Then Err.Clear
AppWd.Activate




Avatar
Lionel
Re

Tout fonctionne bien ...Je desirerai juste une reponse :
Est-il possible de donner le chemin de sous la forme relative "../aide.doc"
pour ne pas signaler la totalité du chemin et faciliter la portabilité du
tableau et de son aide ?
Merci
Lionel

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour Denis
Si je peux me permettre papou ...
Bien sûr que tu peux ;-)

Pour l'utilisation des majuscules c'est bien ce que je fais
systématiquement, mais effectivement pas toujours lors de mes réponses.
Pour la méthode de On Error Resume Next, tu as raison : c'est une
meilleure

approche.

Cordialement
Pascal

"MichDenis" a écrit dans le message de news:

Si je peux me permettre papou ...

Si tu utilisais des majuscules dans le nom de tes variables
un peu comme les mots résservés de Visual basic, cela
t'aiderait à percevoir rapidement, si tu as fait une faute
d'orthographe sur le nom des variables (moi ça m'aide ...-))) )

ça pourrait donner ceci :
Dim AppWd As Object
Dim DocWd As Object

Et au lieu de répéter On error resume next et On error goto 0
si tu remplaces On error goto 0 par Err.Clear ou Err = 0, tu
n'auras qu'à indiquer une seule fois On error resume next ->
ça fait moins peur à l'usager ...;-))


Dim AppWd As Object
Dim DocWd As Object
On Error Resume Next
Set AppWd = GetObject(, "Word.Application")
If Err <> 0 Then Err.Clear
Set AppWd = CreateObject("Word.Application")
AppWd.Visible = True
AppWd.Windows("test.doc").Activate
If Err <> 0 Then Err = 0
Set dcwd = AppWd.Documents.Open("C:denis1.doc")
If Err <> 0 Then Err.Clear
AppWd.Activate








Avatar
papou
Bonjour
Le plus simple est que tu positionnes ton doc d'aide dans le même répertoire
que ton classeur.
Enfin je pense.
Et ainsi tu peux utiliser le chemin relatif du classeur :
Thisworkbook.path

A toi de voir...

Cordialement
Pascal

"Lionel" a écrit dans le message de news:
4625ddbf$0$5089$
Re

Tout fonctionne bien ...Je desirerai juste une reponse :
Est-il possible de donner le chemin de sous la forme relative
"../aide.doc"
pour ne pas signaler la totalité du chemin et faciliter la portabilité du
tableau et de son aide ?
Merci
Lionel

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour Denis
Si je peux me permettre papou ...
Bien sûr que tu peux ;-)

Pour l'utilisation des majuscules c'est bien ce que je fais
systématiquement, mais effectivement pas toujours lors de mes réponses.
Pour la méthode de On Error Resume Next, tu as raison : c'est une
meilleure

approche.

Cordialement
Pascal

"MichDenis" a écrit dans le message de news:

Si je peux me permettre papou ...

Si tu utilisais des majuscules dans le nom de tes variables
un peu comme les mots résservés de Visual basic, cela
t'aiderait à percevoir rapidement, si tu as fait une faute
d'orthographe sur le nom des variables (moi ça m'aide ...-))) )

ça pourrait donner ceci :
Dim AppWd As Object
Dim DocWd As Object

Et au lieu de répéter On error resume next et On error goto 0
si tu remplaces On error goto 0 par Err.Clear ou Err = 0, tu
n'auras qu'à indiquer une seule fois On error resume next ->
ça fait moins peur à l'usager ...;-))


Dim AppWd As Object
Dim DocWd As Object
On Error Resume Next
Set AppWd = GetObject(, "Word.Application")
If Err <> 0 Then Err.Clear
Set AppWd = CreateObject("Word.Application")
AppWd.Visible = True
AppWd.Windows("test.doc").Activate
If Err <> 0 Then Err = 0
Set dcwd = AppWd.Documents.Open("C:denis1.doc")
If Err <> 0 Then Err.Clear
AppWd.Activate












Avatar
Lionel
Rebonjour
comment donc? en modifiant par exemple le chemin :
Set DocWd = AppWd.Documents.Open("C:WINDOWSBureauPlanningaide
planning.doc")

si je mets mon fichier excel et d'aide dans le dossier Planning sur le
bureau par :

Set DocWd = AppWd.Documents.Open(thisworkbook.path & "aide planning.doc")?

Merci
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour
Le plus simple est que tu positionnes ton doc d'aide dans le même
répertoire

que ton classeur.
Enfin je pense.
Et ainsi tu peux utiliser le chemin relatif du classeur :
Thisworkbook.path

A toi de voir...

Cordialement
Pascal

"Lionel" a écrit dans le message de news:
4625ddbf$0$5089$
Re

Tout fonctionne bien ...Je desirerai juste une reponse :
Est-il possible de donner le chemin de sous la forme relative
"../aide.doc"
pour ne pas signaler la totalité du chemin et faciliter la portabilité
du


tableau et de son aide ?
Merci
Lionel

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour Denis
Si je peux me permettre papou ...
Bien sûr que tu peux ;-)

Pour l'utilisation des majuscules c'est bien ce que je fais
systématiquement, mais effectivement pas toujours lors de mes réponses.
Pour la méthode de On Error Resume Next, tu as raison : c'est une
meilleure

approche.

Cordialement
Pascal

"MichDenis" a écrit dans le message de news:

Si je peux me permettre papou ...

Si tu utilisais des majuscules dans le nom de tes variables
un peu comme les mots résservés de Visual basic, cela
t'aiderait à percevoir rapidement, si tu as fait une faute
d'orthographe sur le nom des variables (moi ça m'aide ...-))) )

ça pourrait donner ceci :
Dim AppWd As Object
Dim DocWd As Object

Et au lieu de répéter On error resume next et On error goto 0
si tu remplaces On error goto 0 par Err.Clear ou Err = 0, tu
n'auras qu'à indiquer une seule fois On error resume next ->
ça fait moins peur à l'usager ...;-))


Dim AppWd As Object
Dim DocWd As Object
On Error Resume Next
Set AppWd = GetObject(, "Word.Application")
If Err <> 0 Then Err.Clear
Set AppWd = CreateObject("Word.Application")
AppWd.Visible = True
AppWd.Windows("test.doc").Activate
If Err <> 0 Then Err = 0
Set dcwd = AppWd.Documents.Open("C:denis1.doc")
If Err <> 0 Then Err.Clear
AppWd.Activate
















Avatar
papou
Oui

Cordialement
Pascal
"Lionel" a écrit dans le message de news:
4625e63f$0$5082$
Rebonjour
comment donc? en modifiant par exemple le chemin :
Set DocWd = AppWd.Documents.Open("C:WINDOWSBureauPlanningaide
planning.doc")

si je mets mon fichier excel et d'aide dans le dossier Planning sur le
bureau par :

Set DocWd = AppWd.Documents.Open(thisworkbook.path & "aide
planning.doc")?

Merci
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour
Le plus simple est que tu positionnes ton doc d'aide dans le même
répertoire

que ton classeur.
Enfin je pense.
Et ainsi tu peux utiliser le chemin relatif du classeur :
Thisworkbook.path

A toi de voir...

Cordialement
Pascal

"Lionel" a écrit dans le message de news:
4625ddbf$0$5089$
Re

Tout fonctionne bien ...Je desirerai juste une reponse :
Est-il possible de donner le chemin de sous la forme relative
"../aide.doc"
pour ne pas signaler la totalité du chemin et faciliter la portabilité
du


tableau et de son aide ?
Merci
Lionel

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Bonjour Denis
Si je peux me permettre papou ...
Bien sûr que tu peux ;-)

Pour l'utilisation des majuscules c'est bien ce que je fais
systématiquement, mais effectivement pas toujours lors de mes
réponses.
Pour la méthode de On Error Resume Next, tu as raison : c'est une
meilleure

approche.

Cordialement
Pascal

"MichDenis" a écrit dans le message de news:

Si je peux me permettre papou ...

Si tu utilisais des majuscules dans le nom de tes variables
un peu comme les mots résservés de Visual basic, cela
t'aiderait à percevoir rapidement, si tu as fait une faute
d'orthographe sur le nom des variables (moi ça m'aide ...-))) )

ça pourrait donner ceci :
Dim AppWd As Object
Dim DocWd As Object

Et au lieu de répéter On error resume next et On error goto 0
si tu remplaces On error goto 0 par Err.Clear ou Err = 0, tu
n'auras qu'à indiquer une seule fois On error resume next ->
ça fait moins peur à l'usager ...;-))


Dim AppWd As Object
Dim DocWd As Object
On Error Resume Next
Set AppWd = GetObject(, "Word.Application")
If Err <> 0 Then Err.Clear
Set AppWd = CreateObject("Word.Application")
AppWd.Visible = True
AppWd.Windows("test.doc").Activate
If Err <> 0 Then Err = 0
Set dcwd = AppWd.Documents.Open("C:denis1.doc")
If Err <> 0 Then Err.Clear
AppWd.Activate