Microsoft 365 Ouverture fermeture de Word (boucle)

  • Initiateur de la discussion Initiateur de la discussion Fab117
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fab117

XLDnaute Impliqué
Hello,
Dans le cadre de mon projet, Job75 et Soan m'ont aidé sur la première partie (fermeture de Word) Lien vers première discussion
Par contre, lorsque j'inclus l'ouverture et la fermeture de Word dans une boucle, ça ne fonctionne que pour la première itération :
VB:
Sub Test374()

        For i = 1 To 3
            Dim Wapp As Object, doc As Object
            On Error Resume Next 'si Word n'est pas ouvert
            Set Wapp = GetObject(, "Word.Application")
            If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
            Wapp.Visible = True
            Wapp.Activate
                With Wapp
                    .Documents.Add
                    With .ActiveWindow.Selection
                        .TypeText "Test fonctionnement sur Word" & vbLf & vbLf
                        .TypeText "Ligne 2" & vbLf
                    End With
                End With
            Application.Wait Now + 3 / 86400 'attente 5 secondes pour tester
            For Each doc In Wapp.Documents: doc.Saved = True: Next 'pas d'enregistrement demandé
            Wapp.Quit 'ferme Word
            Application.Wait Now + 3 / 86400 'attente 5 secondes pour tester
        Next i
End Sub

Quelqu'un saurait-il pourquoi Word ne se réouvre pas dès la 2ème itération ?
Merci d'avance.

Fab
 
Trouvé.
Il fallait rajouter "Set Wapp = Nothing" à la fin de la boucle.
Code complet si ça intéresse quelqu'un :

VB:
Sub Test374()

        For i = 1 To 3
            Dim Wapp As Object, doc As Object
            On Error Resume Next 'si Word n'est pas ouvert
            Set Wapp = GetObject(, "Word.Application")
            If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
            Wapp.Visible = True
            Wapp.Activate ' Met Word en premier plan
                With Wapp
                    .Documents.Add
                    With .ActiveWindow.Selection
                        .TypeText "Test fonctionnement sur Word" & vbLf & vbLf
                        .TypeText "Ligne 2" & vbLf
                    End With
                End With
            Application.Wait Now + 3 / 86400 'attente 5 secondes pour tester
            For Each doc In Wapp.Documents: doc.Saved = True: Next 'pas d'enregistrement demandé
            Wapp.Quit 'ferme Word
            Application.Wait Now + 3 / 86400 'attente 5 secondes pour tester
            Set Wapp = Nothing
        Next i

End Sub

Excellente fin de journée

Fab
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour