VBA WORD : Selectionner Document Actif

Résolu/Fermé
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017 - 7 mai 2015 à 15:55
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017 - 8 mai 2015 à 12:34
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
A voir également:

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
8 mai 2015 à 12:05
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
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017
8 mai 2015 à 12:34
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