OVH Cloud OVH Cloud

macro Excel ne ferme pas Word

1 réponse
Avatar
Nico Iannizzi
Bonjour à toutes et à tous,

Ma macro startword(), ci-dessous, écrit dans un document Word,
l'enregistre,le ferme et ferme aussi l'application Word.
Tout se passe bien si Word n'est pas déjà ouvert au moment de l'exécution de
la macro.
Si un ou plusieurs docments Word sont ouverts au moment de l'exécution de la
macro, Word m'affiche toujours le message suivant:

Fichier utilisé par un autre utilisateur ou une autre application
D:\Mes Documents\modèles\Normal.dot

Comment faire pour éviter ce message, sans toutefois fermer les documents Word
déjà ouverts au moment de l'exécution de la macro?

Ma macro:

Sub startword()

Dim Wordapp As Object

Set Wordapp = CreateObject("Word.Application")

With Wordapp
.documents.Add
.Visible = True
With .Selection
.PageSetup.LeftMargin = 45
.TypeParagraph
.TypeParagraph
.Font.Bold = wdToggle
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText Text:="BLABLABLA"
End With
.activedocument.SaveAs Filename:="D:\Mes Documents\nico.doc"
.activedocument.Close

End With

' Tuer l'objet

Wordapp.Application.Quit
Set Wordapp = Nothing


End Sub

Comme je tourne déjà pas mal de temps autour du probléme, je vous saurais
gré si vous pouviez m'apporter de l'aide.

Merci d'avance de votre aide et au revoir.

Nico Iannizzi

1 réponse

Avatar
Youky
Bonsoir Nico,
Cette macro test si Word est déja ouvert, il te faut en utiliser que le
début.
Ma variable suivant indique le nom du fichier.
Si elle peut t'apporter une solution, je l'ai pas testé sur Excel mais
tourne bien en VB5
Youky

Dim AppWrd As Object
Dim DocWrd As String
On Error Resume Next
Set AppWrd = GetObject(, "Word.Application")
If Err <> 0 Then _
Set AppWrd = CreateObject("Word.Application")
AppWrd.Visible = True
On Error GoTo 0
DocWrd = App.Path & "" & suivant & ".doc"
On Error Resume Next
AppWrd.Windows(suivant & ".doc").Activate
If Err <> 0 Then AppWrd.Documents.Open (DocWrd)
On Error GoTo 0
AppActivate suivant
AppWrd.Windows(suivant & ".doc").WindowState = 1
Set AppWrd = Nothing

"Nico Iannizzi" a écrit dans le
message de news:
Bonjour à toutes et à tous,

Ma macro startword(), ci-dessous, écrit dans un document Word,
l'enregistre,le ferme et ferme aussi l'application Word.
Tout se passe bien si Word n'est pas déjà ouvert au moment de l'exécution
de

la macro.
Si un ou plusieurs docments Word sont ouverts au moment de l'exécution de
la

macro, Word m'affiche toujours le message suivant:

Fichier utilisé par un autre utilisateur ou une autre application
D:Mes DocumentsmodèlesNormal.dot

Comment faire pour éviter ce message, sans toutefois fermer les documents
Word

déjà ouverts au moment de l'exécution de la macro?

Ma macro:

Sub startword()

Dim Wordapp As Object

Set Wordapp = CreateObject("Word.Application")

With Wordapp
.documents.Add
.Visible = True
With .Selection
.PageSetup.LeftMargin = 45
.TypeParagraph
.TypeParagraph
.Font.Bold = wdToggle
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText Text:="BLABLABLA"
End With
.activedocument.SaveAs Filename:="D:Mes Documentsnico.doc"
.activedocument.Close

End With

' Tuer l'objet

Wordapp.Application.Quit
Set Wordapp = Nothing


End Sub

Comme je tourne déjà pas mal de temps autour du probléme, je vous saurais
gré si vous pouviez m'apporter de l'aide.

Merci d'avance de votre aide et au revoir.

Nico Iannizzi