Ouvrir et modifier un word depuis vb.net

Résolu
mintraf Messages postés 5 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 janvier 2009 - 27 nov. 2008 à 11:16
 king - 15 mai 2017 à 13:29
Bonjour à tous,

Voici mon problème insolvable:

Je réalise un programme où l'utilisateur va saisir des informations sur un formulaire. A partir de là, je souhaite ouvrir un fichier word type, et que certaines phrases soient remplacées par celles saisies par l'utilisateur.

A partir de là, j'ai réalisé la macro correspondante sous Word, mais je ne sais pas comment faire passer les infos saisies sur des TextBox dans la macro de Word.

Ou alors, tout réaliser par VB.NET, mais je n'ai pas trouvé de pistes valables.

Savez vous sinon comment ouvrir un document word, faire une recherche sur celui-ci, du type rechercher-remplacer, où le texte de remplacement proviendrait du textebox?

Je suis ouvert à toutes idées!

Merci pour votre aide

Mintraf

6 réponses

cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
27 nov. 2008 à 21:26
Salut mintraf,

Voici comment piloter Word en VB.NET :


Dim oW As Object
' Déclaration de la variable oW

oW = CreateObject("Word.Application")
' Initialisation de la variable

oW.Visible = True
' Accepter que Word apparaisse

oW.Documents.Open("D:\test.doc", ReadOnly:=False)
' Ouverture du fichier test.doc

oW.Application.ActiveDocument.Content.Find.Execute(FindText:="Aaa", ReplaceWith:="VB.NET")
'Remplacement de l'expression Aaa par VB.NET

' Bonus :P

oW.ActiveDocument.Save() ' Sauvegarde du document
oW.ActiveDocument.Printout() ' Lancement de l'impression
oW.Quit() ' Ferme Word
oW = Nothing ' Ferme Word

<!-- Coloration syntaxique vb/vba/vb.net : http://charles.racaud.free.fr/code-syntaxing/ -->Coloration syntaxique vb/vba/vb.net


++

Fauve
Pensez : Réponse Acceptée 
1
merci
0
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
27 nov. 2008 à 14:02
Bonjour, une fois les infos enregistrées tu ouvres ton word type puis tu fais
Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "Textearemplace"
        .Replacement.Text = TextBox1.Text 'nouveau texte
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

Bien sur sur word, en vbnet cela est différent.
0
mintraf Messages postés 5 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 janvier 2009
27 nov. 2008 à 18:07
Bonsoir,

C'est bien sûr ce que j'ai fait pour ma macro word.
Mais je ne sais pas comment faire en sorte que le TextBox1.Text qu'il récupère soit celui de VB.net

Merci pour votre aide!

Mintraf
0
mintraf Messages postés 5 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 12 janvier 2009
27 nov. 2008 à 22:52
Ca marche, c'est top!
Merci beaucoup, c'est beaucoup plus simple que mes solutions de chargement de Word 9.0, de macros et tout le bazar!

Mintraf
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
parmk Messages postés 15 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 30 septembre 2009
5 mars 2009 à 10:45
merci beaucoup je vais essayer et vous ferai la suite
0
parmk Messages postés 15 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 30 septembre 2009
7 mars 2009 à 10:18
ca marche a merveille
merci beaucoup a tous je vais biento mettre en ligne ce a quoi ce code m'a servi
a bientot
0
Rejoignez-nous