VBA WORD : Selectionner Document Actif

Résolu
ph412 Messages postés 49 Statut Membre -  
ph412 Messages postés 49 Statut Membre -
Bonjour à tous,

Je me débrouille en VBA Excel mais je suis un total débutant total en Word.
Mon problème :
Je souhaite à partir de Excel inscrire des données variables sur un fichier word.
Jusque là j'y arrive avec le code ci dessous.
( ma variable est déclarée en public dans Excel et s'inscrit parfaitement)

Sub Creation_doc_word()
Dim WQ As Object
Set WQ = New Word.Application

WQ.Visible = True

' Création d'un nouveau document :
WQ.Documents.Add

WQ.Selection.TypeText Text:=variable
Set WQ = Nothing
End Sub

Maintenant le document word restant ouvert, je souhaite pouvoir à nouveau écrire sur ce document ( via une autre macro) mais je n'arrive pas à le sélectionner à nouveau. Pouvez vous m'aider s'il vous plait ?

Si j'ai bien compris Word.Application me permet d'indiquer à VBA que je travail sur word mais il ne me permet pas de sélectionner mon document.

Merci

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    comme ceci:
    'allez dans Outils-références et cochez Microsoft Word 12.0 Object Library
    Sub Creation_doc_word()
       Dim MonBeauWord As Object
       Set MonBeauWord = New Word.Application
       MonBeauWord.Visible = True
      ' Création d'un nouveau document :
       MonBeauWord.Documents.Add
       ' Ecriture d'un petit texte dans ce nouveau document :
       MonBeauWord.Selection.TypeText "Test de fonctionnement"
       ' Sauvegarde de ce document ainsi créé :
       'MonBeauWord.ActiveDocument.SaveAs "C:\Mes documents\Simple test.doc"
       ' Fermeture de ce document :
      ' MonBeauWord.ActiveDocument.Close
     ' Set MonBeauWord = Nothing
     End Sub
    Sub ajout_texte()
     Dim appword As Object, lesdocuments As Object, ledoc As Object
     Dim i As Byte
     On Error GoTo piegeerreur
     'Essaie de récupérer l'instance de Word
     'active au cas où Word serait ouvert
     'Si Word n'est pas ouvert, cela génère
     'l'erreur numéro 429
     'Dans ce cas, c'est le gestionnaire d'erreur "piegeerreur"
     'qui prend le relais et qui ouvre Word
     Set appword = GetObject(, "Word.Application")
     appword.Visible = True
     Set lesdocuments = appword.Documents
     For Each ledoc In lesdocuments
     ledoc.Select
     appword.Selection.EndKey Unit:=wdStory
     appword.Selection.InsertParagraph
     appword.Selection.InsertAfter "C'est fini"
     ledoc.Save
      Next
     'Fermer les documents
     For Each ledoc In lesdocuments
     ledoc.Close
     Next
     'Fermer Word
     appword.Quit
     'Sortie de routine, pour éviter le gestionnaire d'erreurs
     Exit Sub
     'Gestionnaire d'erreurs
    piegeerreur:
     Select Case Err.Number
     Case 429
     MsgBox "Le fichier existe déjà. Fin du programme et retour à Word "
     Case Else
     MsgBox "Erreur imprévue. Fin du programme et retour à Word"
     End
     End Select
     End Sub
    
    

    2
    1. ph412 Messages postés 49 Statut Membre
       
      Merci beaucoup, ça marche très bien ! ( Après je ne ferme pas le document word pour pouvoir continuellement passer de excel à word) Super !
      0