Débutant avec le VBA de Word, j'aimerai savoir si une instance de word est
déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la
fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon
document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en
conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la
bienvenue.à
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Dav
Bonsoir/jour Jacques
Voici ma proposition.
Sub instance() Dim WordApp As Word.Application Dim WordFonctionnePas As Boolean
WordFonctionnePas = False On Error Resume Next Set WordApp = GetObject(, "Word.Application") 'recherche d'erreur lors de la prise en main de l'applicaiton Word If Err.Number <> 0 Then 'Si erreur il y à... WordFonctionnePas = True 'Alors Word ne fonctionnait pas Set WordApp = CreateObject("Word.Application") 'et une instance est donc créée End If
With WordApp .Documents.Add .Selection.TypeText "Blabalbalblalal" .ActiveDocument.SaveAs "C:MonDocWord.doc" .ActiveDocument.Close If .Documents.Count = 0 Then WordApp.Quit 'si il n'y a pas d'autre document ouvert alors l'application est fermée sinon elle est laissée ouverte. End With Set WordApp = Nothing
End Sub
A voir maintenant si cela te convient. Je n'ai pas réutilisé la variable "WordFonctionnePas" car je trouve que c'est un peu dangeureux. Au départ peut-être que l'utilisateur ne travaille sur Word mais par la suite il peut ouvrir d'autres documents. Donc "IF Documents.count = O alors quit sinon quit pas"
Dis nous si cela te convient.
Dav
"Jacques" a écrit dans le message de groupe de discussion :
Bonjour,
Débutant avec le VBA de Word, j'aimerai savoir si une instance de word est déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la bienvenue.à
Merci de vos réponses
Jacques
Bonsoir/jour Jacques
Voici ma proposition.
Sub instance()
Dim WordApp As Word.Application
Dim WordFonctionnePas As Boolean
WordFonctionnePas = False
On Error Resume Next
Set WordApp = GetObject(, "Word.Application") 'recherche d'erreur lors de la
prise en main de l'applicaiton Word
If Err.Number <> 0 Then 'Si erreur il y à...
WordFonctionnePas = True 'Alors Word ne fonctionnait pas
Set WordApp = CreateObject("Word.Application") 'et une instance est donc
créée
End If
With WordApp
.Documents.Add
.Selection.TypeText "Blabalbalblalal"
.ActiveDocument.SaveAs "C:MonDocWord.doc"
.ActiveDocument.Close
If .Documents.Count = 0 Then WordApp.Quit 'si il n'y a pas d'autre
document ouvert alors l'application est fermée sinon elle est laissée
ouverte.
End With
Set WordApp = Nothing
End Sub
A voir maintenant si cela te convient.
Je n'ai pas réutilisé la variable "WordFonctionnePas" car je trouve que
c'est un peu dangeureux. Au départ peut-être que l'utilisateur ne travaille
sur Word mais par la suite il peut ouvrir d'autres documents. Donc "IF
Documents.count = O alors quit sinon quit pas"
Dis nous si cela te convient.
Dav
"Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de
discussion : u81QwCMmIHA.3780@TK2MSFTNGP06.phx.gbl...
Bonjour,
Débutant avec le VBA de Word, j'aimerai savoir si une instance de word est
déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la
fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon
document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en
conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la
bienvenue.à
Sub instance() Dim WordApp As Word.Application Dim WordFonctionnePas As Boolean
WordFonctionnePas = False On Error Resume Next Set WordApp = GetObject(, "Word.Application") 'recherche d'erreur lors de la prise en main de l'applicaiton Word If Err.Number <> 0 Then 'Si erreur il y à... WordFonctionnePas = True 'Alors Word ne fonctionnait pas Set WordApp = CreateObject("Word.Application") 'et une instance est donc créée End If
With WordApp .Documents.Add .Selection.TypeText "Blabalbalblalal" .ActiveDocument.SaveAs "C:MonDocWord.doc" .ActiveDocument.Close If .Documents.Count = 0 Then WordApp.Quit 'si il n'y a pas d'autre document ouvert alors l'application est fermée sinon elle est laissée ouverte. End With Set WordApp = Nothing
End Sub
A voir maintenant si cela te convient. Je n'ai pas réutilisé la variable "WordFonctionnePas" car je trouve que c'est un peu dangeureux. Au départ peut-être que l'utilisateur ne travaille sur Word mais par la suite il peut ouvrir d'autres documents. Donc "IF Documents.count = O alors quit sinon quit pas"
Dis nous si cela te convient.
Dav
"Jacques" a écrit dans le message de groupe de discussion :
Bonjour,
Débutant avec le VBA de Word, j'aimerai savoir si une instance de word est déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la bienvenue.à
Merci de vos réponses
Jacques
Geo
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
dans tous les cas vous fermez votre document. Ensuite fermez Word s'il n'y a plus de document. ActiveDocument.Close If Documents.Count = 0 Then Application.Quit End If
-- A+
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon
document sinon, fermer le document ainsi que Word.
dans tous les cas vous fermez votre document.
Ensuite fermez Word s'il n'y a plus de document.
ActiveDocument.Close
If Documents.Count = 0 Then
Application.Quit
End If
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
dans tous les cas vous fermez votre document. Ensuite fermez Word s'il n'y a plus de document. ActiveDocument.Close If Documents.Count = 0 Then Application.Quit End If
-- A+
Dav
Re...
En voyant la réponse de Geo je dois préciser que je suis tout de suite parti dans l'idée que tu devais créer une instance de Word depuis une autre application (Excel par exemple) Ce qui n'est peut-être pas forcément le cas. Comme j'ai dû récemment créer une instance de Word depuis Excel j'ai tout de suite pensé à ça.
Dav
"Dav" a écrit dans le message de groupe de discussion :
Bonsoir/jour Jacques
Voici ma proposition.
Sub instance() Dim WordApp As Word.Application Dim WordFonctionnePas As Boolean
WordFonctionnePas = False On Error Resume Next Set WordApp = GetObject(, "Word.Application") 'recherche d'erreur lors de la prise en main de l'applicaiton Word If Err.Number <> 0 Then 'Si erreur il y à... WordFonctionnePas = True 'Alors Word ne fonctionnait pas Set WordApp = CreateObject("Word.Application") 'et une instance est donc créée End If
With WordApp .Documents.Add .Selection.TypeText "Blabalbalblalal" .ActiveDocument.SaveAs "C:MonDocWord.doc" .ActiveDocument.Close If .Documents.Count = 0 Then WordApp.Quit 'si il n'y a pas d'autre document ouvert alors l'application est fermée sinon elle est laissée ouverte. End With Set WordApp = Nothing
End Sub
A voir maintenant si cela te convient. Je n'ai pas réutilisé la variable "WordFonctionnePas" car je trouve que c'est un peu dangeureux. Au départ peut-être que l'utilisateur ne travaille sur Word mais par la suite il peut ouvrir d'autres documents. Donc "IF Documents.count = O alors quit sinon quit pas"
Dis nous si cela te convient.
Dav
"Jacques" a écrit dans le message de groupe de discussion :
Bonjour,
Débutant avec le VBA de Word, j'aimerai savoir si une instance de word est déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la bienvenue.à
Merci de vos réponses
Jacques
Re...
En voyant la réponse de Geo je dois préciser que je suis tout de suite parti
dans l'idée que tu devais créer une instance de Word depuis une autre
application (Excel par exemple)
Ce qui n'est peut-être pas forcément le cas.
Comme j'ai dû récemment créer une instance de Word depuis Excel j'ai tout de
suite pensé à ça.
Dav
"Dav" <gerard@yahoo.fr> a écrit dans le message de groupe de discussion :
e7cgPUOmIHA.5820@TK2MSFTNGP04.phx.gbl...
Bonsoir/jour Jacques
Voici ma proposition.
Sub instance()
Dim WordApp As Word.Application
Dim WordFonctionnePas As Boolean
WordFonctionnePas = False
On Error Resume Next
Set WordApp = GetObject(, "Word.Application") 'recherche d'erreur lors de
la prise en main de l'applicaiton Word
If Err.Number <> 0 Then 'Si erreur il y à...
WordFonctionnePas = True 'Alors Word ne fonctionnait pas
Set WordApp = CreateObject("Word.Application") 'et une instance est
donc créée
End If
With WordApp
.Documents.Add
.Selection.TypeText "Blabalbalblalal"
.ActiveDocument.SaveAs "C:MonDocWord.doc"
.ActiveDocument.Close
If .Documents.Count = 0 Then WordApp.Quit 'si il n'y a pas d'autre
document ouvert alors l'application est fermée sinon elle est laissée
ouverte.
End With
Set WordApp = Nothing
End Sub
A voir maintenant si cela te convient.
Je n'ai pas réutilisé la variable "WordFonctionnePas" car je trouve que
c'est un peu dangeureux. Au départ peut-être que l'utilisateur ne
travaille sur Word mais par la suite il peut ouvrir d'autres documents.
Donc "IF Documents.count = O alors quit sinon quit pas"
Dis nous si cela te convient.
Dav
"Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de
discussion : u81QwCMmIHA.3780@TK2MSFTNGP06.phx.gbl...
Bonjour,
Débutant avec le VBA de Word, j'aimerai savoir si une instance de word
est
déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la
fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon
document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en
conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la
bienvenue.à
En voyant la réponse de Geo je dois préciser que je suis tout de suite parti dans l'idée que tu devais créer une instance de Word depuis une autre application (Excel par exemple) Ce qui n'est peut-être pas forcément le cas. Comme j'ai dû récemment créer une instance de Word depuis Excel j'ai tout de suite pensé à ça.
Dav
"Dav" a écrit dans le message de groupe de discussion :
Bonsoir/jour Jacques
Voici ma proposition.
Sub instance() Dim WordApp As Word.Application Dim WordFonctionnePas As Boolean
WordFonctionnePas = False On Error Resume Next Set WordApp = GetObject(, "Word.Application") 'recherche d'erreur lors de la prise en main de l'applicaiton Word If Err.Number <> 0 Then 'Si erreur il y à... WordFonctionnePas = True 'Alors Word ne fonctionnait pas Set WordApp = CreateObject("Word.Application") 'et une instance est donc créée End If
With WordApp .Documents.Add .Selection.TypeText "Blabalbalblalal" .ActiveDocument.SaveAs "C:MonDocWord.doc" .ActiveDocument.Close If .Documents.Count = 0 Then WordApp.Quit 'si il n'y a pas d'autre document ouvert alors l'application est fermée sinon elle est laissée ouverte. End With Set WordApp = Nothing
End Sub
A voir maintenant si cela te convient. Je n'ai pas réutilisé la variable "WordFonctionnePas" car je trouve que c'est un peu dangeureux. Au départ peut-être que l'utilisateur ne travaille sur Word mais par la suite il peut ouvrir d'autres documents. Donc "IF Documents.count = O alors quit sinon quit pas"
Dis nous si cela te convient.
Dav
"Jacques" a écrit dans le message de groupe de discussion :
Bonjour,
Débutant avec le VBA de Word, j'aimerai savoir si une instance de word est déjà ouverte. J'ouvre un document avec un UserForm et j'aimerai gérer la fermeture de Word.
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
Je suppose qu'il me faut savoir si Word est déjà ouvert ou pas et agir en conséquence.
Une petite aide pour détecter si une instance est déjà ouverte serait la bienvenue.à
Merci de vos réponses
Jacques
Geo
Re...
En voyant la réponse de Geo je dois préciser que je suis tout de suite parti dans l'idée que tu devais créer une instance de Word depuis une autre application (Excel par exemple) Ce qui n'est peut-être pas forcément le cas.
C'est peut être vous qui avez raison, on ne comprend pas toujours la même chose en lisant une question. C'est l'avantage des forums, chacun y apporte ce qu'il sait.
-- A+
Re...
En voyant la réponse de Geo je dois préciser que je suis tout de suite parti dans
l'idée que tu devais créer une instance de Word depuis une autre application (Excel par
exemple)
Ce qui n'est peut-être pas forcément le cas.
C'est peut être vous qui avez raison, on ne comprend pas toujours la
même chose en lisant une question.
C'est l'avantage des forums, chacun y apporte ce qu'il sait.
En voyant la réponse de Geo je dois préciser que je suis tout de suite parti dans l'idée que tu devais créer une instance de Word depuis une autre application (Excel par exemple) Ce qui n'est peut-être pas forcément le cas.
C'est peut être vous qui avez raison, on ne comprend pas toujours la même chose en lisant une question. C'est l'avantage des forums, chacun y apporte ce qu'il sait.
-- A+
Jacques
Merci à vous deux !
Grâce à vos commentaires, j'ai pu régler mon problème. Effectivement c'est en ouvrant le document que je voulais vérifier s'il y avait déjà une instance...! Il y aura toujours une instance puisque j'ouvre un fichier doc !! Donc pour savoir si un utilisateur a déjà ouvert un document, je compte le nombre de documents ouverts. S'il n'y en a qu'un ...c'est le mien et donc je peux fermer Word, s'il y en a au moins deux, cela veut dire que l'utilisateur a déjà ouvert Word pour y travailler et donc je ne ferme que mon document !
Jacques
"Geo" a écrit dans le message de news:
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
dans tous les cas vous fermez votre document. Ensuite fermez Word s'il n'y a plus de document. ActiveDocument.Close If Documents.Count = 0 Then Application.Quit End If
-- A+
Merci à vous deux !
Grâce à vos commentaires, j'ai pu régler mon problème. Effectivement c'est en
ouvrant le document que je voulais vérifier s'il y avait déjà une instance...!
Il y aura toujours une instance puisque j'ouvre un fichier doc !! Donc pour
savoir si un utilisateur a déjà ouvert un document, je compte le nombre de
documents ouverts. S'il n'y en a qu'un ...c'est le mien et donc je peux fermer
Word, s'il y en a au moins deux, cela veut dire que l'utilisateur a déjà ouvert
Word pour y travailler et donc je ne ferme que mon document !
Jacques
"Geo" <Geo@sans.pub> a écrit dans le message de
news:mn.3d107d84891a7b51.41568@sans.pub...
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon
document sinon, fermer le document ainsi que Word.
dans tous les cas vous fermez votre document.
Ensuite fermez Word s'il n'y a plus de document.
ActiveDocument.Close
If Documents.Count = 0 Then
Application.Quit
End If
Grâce à vos commentaires, j'ai pu régler mon problème. Effectivement c'est en ouvrant le document que je voulais vérifier s'il y avait déjà une instance...! Il y aura toujours une instance puisque j'ouvre un fichier doc !! Donc pour savoir si un utilisateur a déjà ouvert un document, je compte le nombre de documents ouverts. S'il n'y en a qu'un ...c'est le mien et donc je peux fermer Word, s'il y en a au moins deux, cela veut dire que l'utilisateur a déjà ouvert Word pour y travailler et donc je ne ferme que mon document !
Jacques
"Geo" a écrit dans le message de news:
Si l'utilisateur travaille déjà dans Word, j'aimerai ne fermer que mon document sinon, fermer le document ainsi que Word.
dans tous les cas vous fermez votre document. Ensuite fermez Word s'il n'y a plus de document. ActiveDocument.Close If Documents.Count = 0 Then Application.Quit End If