VBA : ouverture et fermeture fichier word

Le
Greffier
Bonjour,

Et Bonnes Fêtes à tous, pour Noël qui est passé et pour le nouvel An à
venir.

Voilà, j'écris à partir Excel un fichier sur Word. quand je le relis sous
Word, il est OK. C'est à la fermeture de ce fichier lorsque je le relis que
tout se passe voilà ce que me dit l'aide (listée ci-après) au moment de la
fermeture. Tout se passe correctement dans Excel et Word, pendant le
traitement. Les fichiers Word et Excel se ferment correctement.


Je joins la description de ce que j'ai programmé :

'application Word

Dim oWord As Word.Application

Dim oDoc As Word.Document

Dim oRange As Word.Range



'Créer une instance de word==

On Error Resume Next

Set oWord = GetObject("E:CourriercopropriétéAG.doc", "Word.Application")

If Err <> 0 Then

Err.Clear

Set oWord = CreateObject("Word.Application")

Set oDoc =
oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

End If

oWord.Visible = True 'rendre le document word visible

'



'==þrmeture==

oWord.Visible = False

oWord.ActiveDocument.SaveAs _

Filename:="E:courriercopropriétéAG.doc", _

FileFormat:=wdFormatDocument

oWord.ActiveDocument.Saved = True

oWord.ActiveDocument.Close



Set oRange = Nothing

Set oWord = Nothing

Set oDoc = Nothing






Voici l'aide que j'ai récupérée. Comment éviter l'erreur.

Cette erreur est fréquemment rencontrée lorsque le fichier que vous tentez
d'ouvrir est verrouillé en lecture. Cela peut être causé par :

· Un autre utilisateur a ouvert le fichier sur le même ordinateur
que le vôtre ou sur un autre.

· Word s'est interrompu à un moment et a laissé un verrou de
lecture sur le fichier.

· Une autre application a verrouillé le fichier en mode exclusif ;
Word ne peut donc pas ouvrir le fichier.

· Une application personnalisée est en cours d'exécution et a
ouvert ce fichier (sur l'ordinateur d'un autre utilisateur peut-être). Elle
a peut-être ouvert le fichier selon une procédure incorrecte.



Greffier.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Blaise Cacramp
Le #18246041
Bonjour ou bonsoir, selon.

Quelques petits conseils lorsque vous programmez en vba automation (donc par
exemple ici "commander" Word à partir d'Excel)
1/ Virer on error resume next et donc être obligé de résoudre les erreurs
avant leurs apparitions.
2/ Ne pas mettre la propriété visible à false temps que les erreurs ne sont
pas résolues, car c'est probablement là l'origine de votre problème :
plusieurs instances du document sont ouvertes, et ne sont pas visibles.
vérifiez d'ailleurs avec CTRL+ALT+DELETE

3/ soyez complètement explicite dans les noms d'objets. Symptôme
caractéristique : votre programme fonctionne une fois, mais pas la seconde.
déboguez et méfiez vous de l'aide. Elle accepte une référence implicite
lorsque qu'on programme DANS l'application, mais il faut être VRAIMENT
explicite dans lorsqu'on est à l'extérieur.

Bon courage !


Cdt, Blaise
---- ---- ----


"Greffier"

Bonjour,

Et Bonnes Fêtes à tous, pour Noël qui est passé et pour le nouvel An à
venir.

Voilà, j'écris à partir Excel un fichier sur Word. quand je le relis sous
Word, il est OK. C'est à la fermeture de ce fichier lorsque je le relis
que tout se passe voilà ce que me dit l'aide (listée ci-après) au moment
de la fermeture. Tout se passe correctement dans Excel et Word, pendant le
traitement. Les fichiers Word et Excel se ferment correctement.


Je joins la description de ce que j'ai programmé :

'======application Word======== >
Dim oWord As Word.Application

Dim oDoc As Word.Document

Dim oRange As Word.Range



'======Créer une instance de word========== >
On Error Resume Next

Set oWord = GetObject("E:CourriercopropriétéAG.doc",
"Word.Application")

If Err <> 0 Then

Err.Clear

Set oWord = CreateObject("Word.Application")

Set oDoc =
oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

End If

oWord.Visible = True 'rendre le document word visible

'



'=====þrmeture================ >
oWord.Visible = False

oWord.ActiveDocument.SaveAs _

Filename:="E:courriercopropriétéAG.doc", _

FileFormat:=wdFormatDocument

oWord.ActiveDocument.Saved = True

oWord.ActiveDocument.Close



Set oRange = Nothing

Set oWord = Nothing

Set oDoc = Nothing






Voici l'aide que j'ai récupérée. Comment éviter l'erreur.

Cette erreur est fréquemment rencontrée lorsque le fichier que vous tentez
d'ouvrir est verrouillé en lecture. Cela peut être causé par :

· Un autre utilisateur a ouvert le fichier sur le même ordinateur
que le vôtre ou sur un autre.

· Word s'est interrompu à un moment et a laissé un verrou de
lecture sur le fichier.

· Une autre application a verrouillé le fichier en mode exclusif
; Word ne peut donc pas ouvrir le fichier.

· Une application personnalisée est en cours d'exécution et a
ouvert ce fichier (sur l'ordinateur d'un autre utilisateur peut-être).
Elle a peut-être ouvert le fichier selon une procédure incorrecte.



Greffier.




Blaise Cacramp
Le #18246561
Bonjour ou bonsoir, selon.

et après relecture, je dirais (sans avoir testé) qu'un simple oWord.save
devrait suffire ?
suivi d'un oWord.quit (n'y a t'il pas un .quit wdSaveYes à l'image de ce qui
peut se faire en Access ?)
.saved est une propriété et non une méthode, pas la peine de tricher !


Cdt, Blaise
---- ---- ----


"Blaise Cacramp"
Bonjour ou bonsoir, selon.

Quelques petits conseils lorsque vous programmez en vba automation (donc
par exemple ici "commander" Word à partir d'Excel)
1/ Virer on error resume next et donc être obligé de résoudre les erreurs
avant leurs apparitions.
2/ Ne pas mettre la propriété visible à false temps que les erreurs ne
sont pas résolues, car c'est probablement là l'origine de votre problème :
plusieurs instances du document sont ouvertes, et ne sont pas visibles.
vérifiez d'ailleurs avec CTRL+ALT+DELETE

3/ soyez complètement explicite dans les noms d'objets. Symptôme
caractéristique : votre programme fonctionne une fois, mais pas la
seconde. déboguez et méfiez vous de l'aide. Elle accepte une référence
implicite lorsque qu'on programme DANS l'application, mais il faut être
VRAIMENT explicite dans lorsqu'on est à l'extérieur.

Bon courage !


Cdt, Blaise
---- ---- ----


"Greffier"

Bonjour,

Et Bonnes Fêtes à tous, pour Noël qui est passé et pour le nouvel An à
venir.

Voilà, j'écris à partir Excel un fichier sur Word. quand je le relis sous
Word, il est OK. C'est à la fermeture de ce fichier lorsque je le relis
que tout se passe voilà ce que me dit l'aide (listée ci-après) au moment
de la fermeture. Tout se passe correctement dans Excel et Word, pendant
le traitement. Les fichiers Word et Excel se ferment correctement.


Je joins la description de ce que j'ai programmé :

'======application Word======== >>
Dim oWord As Word.Application

Dim oDoc As Word.Document

Dim oRange As Word.Range



'======Créer une instance de word========== >>
On Error Resume Next

Set oWord = GetObject("E:CourriercopropriétéAG.doc",
"Word.Application")

If Err <> 0 Then

Err.Clear

Set oWord = CreateObject("Word.Application")

Set oDoc =
oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

End If

oWord.Visible = True 'rendre le document word visible

'



'=====þrmeture================ >>
oWord.Visible = False

oWord.ActiveDocument.SaveAs _

Filename:="E:courriercopropriétéAG.doc", _

FileFormat:=wdFormatDocument

oWord.ActiveDocument.Saved = True

oWord.ActiveDocument.Close



Set oRange = Nothing

Set oWord = Nothing

Set oDoc = Nothing






Voici l'aide que j'ai récupérée. Comment éviter l'erreur.

Cette erreur est fréquemment rencontrée lorsque le fichier que vous
tentez d'ouvrir est verrouillé en lecture. Cela peut être causé par :

· Un autre utilisateur a ouvert le fichier sur le même
ordinateur que le vôtre ou sur un autre.

· Word s'est interrompu à un moment et a laissé un verrou de
lecture sur le fichier.

· Une autre application a verrouillé le fichier en mode exclusif
; Word ne peut donc pas ouvrir le fichier.

· Une application personnalisée est en cours d'exécution et a
ouvert ce fichier (sur l'ordinateur d'un autre utilisateur peut-être).
Elle a peut-être ouvert le fichier selon une procédure incorrecte.



Greffier.








michdenis
Le #18246781
Tout au long de la procédure, tu dois utiliser tes variables objets
pour ton code :

Exemple, tu utilises :
| Set oDoc | oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

Lorsque tu veux fermer le document, pourquoi n'utilise pas :
oDoc.SaveAs ....

ailleurs, tu as utilisé :
oWord.ActiveDocument.Saved = True

Tu devrais utilisé : oDoc.Saved = True

En passant, si tu veux faire corriger du code, pourquoi ne pas publier
ta procédure au complet !!! sinon, tu le gardes au complet pour toi.




"Greffier"

Bonjour,

Et Bonnes Fêtes à tous, pour Noël qui est passé et pour le nouvel An à
venir.

Voilà, j'écris à partir Excel un fichier sur Word. quand je le relis sous
Word, il est OK. C'est à la fermeture de ce fichier lorsque je le relis que
tout se passe voilà ce que me dit l'aide (listée ci-après) au moment de la
fermeture. Tout se passe correctement dans Excel et Word, pendant le
traitement. Les fichiers Word et Excel se ferment correctement.


Je joins la description de ce que j'ai programmé :

'======application Word========
Dim oWord As Word.Application

Dim oDoc As Word.Document

Dim oRange As Word.Range



'======Créer une instance de word==========
On Error Resume Next

Set oWord = GetObject("E:CourriercopropriétéAG.doc", "Word.Application")

If Err <> 0 Then

Err.Clear

Set oWord = CreateObject("Word.Application")

Set oDoc oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

End If

oWord.Visible = True 'rendre le document word visible

'



'=====þrmeture================
oWord.Visible = False

oWord.ActiveDocument.SaveAs _

Filename:="E:courriercopropriétéAG.doc", _

FileFormat:=wdFormatDocument

oWord.ActiveDocument.Saved = True

oWord.ActiveDocument.Close



Set oRange = Nothing

Set oWord = Nothing

Set oDoc = Nothing






Voici l'aide que j'ai récupérée. Comment éviter l'erreur.

Cette erreur est fréquemment rencontrée lorsque le fichier que vous tentez
d'ouvrir est verrouillé en lecture. Cela peut être causé par :

· Un autre utilisateur a ouvert le fichier sur le même ordinateur
que le vôtre ou sur un autre.

· Word s'est interrompu à un moment et a laissé un verrou de
lecture sur le fichier.

· Une autre application a verrouillé le fichier en mode exclusif ;
Word ne peut donc pas ouvrir le fichier.

· Une application personnalisée est en cours d'exécution et a
ouvert ce fichier (sur l'ordinateur d'un autre utilisateur peut-être). Elle
a peut-être ouvert le fichier selon une procédure incorrecte.



Greffier.
Greffier
Le #18247091
Bonjour,

OK, michdenis.
Dès que le code marche je l'envoie.

Merci pour la leçon, et sans rancune.

Greffier.



"michdenis"
Tout au long de la procédure, tu dois utiliser tes variables objets
pour ton code :

Exemple, tu utilises :
| Set oDoc > | oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

Lorsque tu veux fermer le document, pourquoi n'utilise pas :
oDoc.SaveAs ....

ailleurs, tu as utilisé :
oWord.ActiveDocument.Saved = True

Tu devrais utilisé : oDoc.Saved = True

En passant, si tu veux faire corriger du code, pourquoi ne pas publier
ta procédure au complet !!! sinon, tu le gardes au complet pour toi.




"Greffier"

Bonjour,

Et Bonnes Fêtes à tous, pour Noël qui est passé et pour le nouvel An à
venir.

Voilà, j'écris à partir Excel un fichier sur Word. quand je le relis sous
Word, il est OK. C'est à la fermeture de ce fichier lorsque je le relis
que
tout se passe voilà ce que me dit l'aide (listée ci-après) au moment de la
fermeture. Tout se passe correctement dans Excel et Word, pendant le
traitement. Les fichiers Word et Excel se ferment correctement.


Je joins la description de ce que j'ai programmé :

'======application Word======== >
Dim oWord As Word.Application

Dim oDoc As Word.Document

Dim oRange As Word.Range



'======Créer une instance de word========== >
On Error Resume Next

Set oWord = GetObject("E:CourriercopropriétéAG.doc",
"Word.Application")

If Err <> 0 Then

Err.Clear

Set oWord = CreateObject("Word.Application")

Set oDoc > oWord.Documents.Open(Filename:="E:CourriercopropriétéAG.doc")

End If

oWord.Visible = True 'rendre le document word visible

'



'=====þrmeture================ >
oWord.Visible = False

oWord.ActiveDocument.SaveAs _

Filename:="E:courriercopropriétéAG.doc", _

FileFormat:=wdFormatDocument

oWord.ActiveDocument.Saved = True

oWord.ActiveDocument.Close



Set oRange = Nothing

Set oWord = Nothing

Set oDoc = Nothing






Voici l'aide que j'ai récupérée. Comment éviter l'erreur.

Cette erreur est fréquemment rencontrée lorsque le fichier que vous tentez
d'ouvrir est verrouillé en lecture. Cela peut être causé par :

· Un autre utilisateur a ouvert le fichier sur le même ordinateur
que le vôtre ou sur un autre.

· Word s'est interrompu à un moment et a laissé un verrou de
lecture sur le fichier.

· Une autre application a verrouillé le fichier en mode exclusif
;
Word ne peut donc pas ouvrir le fichier.

· Une application personnalisée est en cours d'exécution et a
ouvert ce fichier (sur l'ordinateur d'un autre utilisateur peut-être).
Elle
a peut-être ouvert le fichier selon une procédure incorrecte.



Greffier.




michdenis
Le #18247391
| Dès que le code marche je l'envoie.

Perso, je ne tiens pas à voir ton code...
mais lorsque tu éprouves une difficulté telle que
tu juges à propos de demander de l'aide...
Difficile pour les intervenants de savoir où tu
erres dans ton code lorsque tu fournis à ces
derniers que quelques lignes de code de ta procédure.
Publicité
Poster une réponse
Anonyme