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

Arrêter la macro

2 réponses
Avatar
EricG
Bonjour,

Voici la procédure suivante que j'ai fait dans Excel.

Private Sub cmdTransfertDonnée_Click()
Dim wApp As Word.Application
Dim strFichier As String
Dim i As Integer

'Le fichier doit être dans le même répertoire que le classeur Excel
strFichier = ThisWorkbook.Path & "\Fichier.doc"

'Ouverture du formulaire dans Word
Set wApp = CreateObject("Word.Application")
wApp.Visible = False
wApp.Documents.Open (strFichier)
If Err <> 0 Then
Exit Sub
End If

'Inscription des données dans le formulaire
For i = 1 to NbreDeDonnees
wApp.ActiveDocument.FormFields(i).Result = Feuil1.Cells(i, 1).Value
Next

wApp.Quit True

Set wApp = Nothing

Feuil1.OLEObjects.Add(Filename:=strFichier, Link:=False,
DisplayAsIcon:=False).Select

End sub

Mon problème est que la macro continu après le wApp.Quit True alors que la
fermeture et l'enregistrement de Word n'est pas terminé.

Lorsque j'insère l'objet (dernier bout de code), le formulaire est vide
puisque le formulaire n'a pas encore été enregistré.

Est-il possible de mettre un "TimeOut" entre la fermeture du fichier et
l'insertion de l'objet afin que word enregistre le document avant l'insertion
?

Merci à tous de votre aide.

2 réponses

Avatar
EricG
Rebonjour,

Désolé de la question puisque j'ai trouvé la réponse dans des questions du
forum

DoEvents...

Merci !

"EricG" a écrit :

Bonjour,

Voici la procédure suivante que j'ai fait dans Excel.

Private Sub cmdTransfertDonnée_Click()
Dim wApp As Word.Application
Dim strFichier As String
Dim i As Integer

'Le fichier doit être dans le même répertoire que le classeur Excel
strFichier = ThisWorkbook.Path & "Fichier.doc"

'Ouverture du formulaire dans Word
Set wApp = CreateObject("Word.Application")
wApp.Visible = False
wApp.Documents.Open (strFichier)
If Err <> 0 Then
Exit Sub
End If

'Inscription des données dans le formulaire
For i = 1 to NbreDeDonnees
wApp.ActiveDocument.FormFields(i).Result = Feuil1.Cells(i, 1).Value
Next

wApp.Quit True

Set wApp = Nothing

Feuil1.OLEObjects.Add(Filename:=strFichier, Link:úlse,
DisplayAsIcon:úlse).Select

End sub

Mon problème est que la macro continu après le wApp.Quit True alors que la
fermeture et l'enregistrement de Word n'est pas terminé.

Lorsque j'insère l'objet (dernier bout de code), le formulaire est vide
puisque le formulaire n'a pas encore été enregistré.

Est-il possible de mettre un "TimeOut" entre la fermeture du fichier et
l'insertion de l'objet afin que word enregistre le document avant l'insertion
?

Merci à tous de votre aide.



Avatar
michdenis
Un principe de base est avant de vouloir
fermer l'application, il est préférable de
fermer tous les documents que contient
l'application.

'Tu mets True si tu veux fermer le document en enregistrant
activedocument.close False

'Ferme l'application
wApp.Quit

'Libère la mémoire objet
set wApp = Nothing


Si tu as plusieurs documents ouverts dans la même instance de Word

For each dc in wApp.documents
dc.close False
Next
wApp.Quit
set wApp = Nothing


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

Bonjour,

Voici la procédure suivante que j'ai fait dans Excel.

Private Sub cmdTransfertDonnée_Click()
Dim wApp As Word.Application
Dim strFichier As String
Dim i As Integer

'Le fichier doit être dans le même répertoire que le classeur Excel
strFichier = ThisWorkbook.Path & "Fichier.doc"

'Ouverture du formulaire dans Word
Set wApp = CreateObject("Word.Application")
wApp.Visible = False
wApp.Documents.Open (strFichier)
If Err <> 0 Then
Exit Sub
End If

'Inscription des données dans le formulaire
For i = 1 to NbreDeDonnees
wApp.ActiveDocument.FormFields(i).Result = Feuil1.Cells(i, 1).Value
Next

wApp.Quit True

Set wApp = Nothing

Feuil1.OLEObjects.Add(Filename:=strFichier, Link:úlse,
DisplayAsIcon:úlse).Select

End sub

Mon problème est que la macro continu après le wApp.Quit True alors que la
fermeture et l'enregistrement de Word n'est pas terminé.

Lorsque j'insère l'objet (dernier bout de code), le formulaire est vide
puisque le formulaire n'a pas encore été enregistré.

Est-il possible de mettre un "TimeOut" entre la fermeture du fichier et
l'insertion de l'objet afin que word enregistre le document avant
l'insertion
?

Merci à tous de votre aide.