Bonjour à tous.
Voila je cherche à modifier un fichier Word, typiquement, un modèle ou on rajoute des données provennant d'une base de données.
Pour diverses raisons, je ne peut pas utiliser le publipostage, la principal étant de pouvoir générer un fichier en allant chercher une liste de contact dans une base, et par exemple afficher tout les destinataires en copie sur une seule page, le publipostage ne permet pas ce genre de chose.
Bref, mon idée était de créer un .dot, avec dedans des mots clés, et ensuite, toujours en asp, executer un rechercher/remplacer qui remplacerait mes mots clés par les données de ma base.
Le problèmes, c'est que j'arrive bien à mettre en place toute la recherche, mais j'arrive pas à l'executer
Donc si vous savez comment faire, je prends, si vous avez une autre idée, pour contourner le problème, je prends aussi
Pour info voila ce que j'ai fait :
Code :
- <%
- set rs = Server.CreateObject("ADODB.Recordset" )
- rs.Open "SELECT * from Users ", "DSN=Intranet;", 1, 2
- 'Déclaration de l'objet Word
- Set WordObject = CreateObject("Word.Application" )
- WordObject.Application.Visible = False
- 'Ouverture du document de fusion et lancement de la commande de fusion
- Set WordDoc = WordObject.Documents.Open(Server.MapPath("modele.dot" ))
- WordObject.Selection.ClearFormatting
- WordObject.Selection.Find.ClearFormatting
- 'Code VBA provennant de Word
- 'Selection.HomeKey Unit:=wdStory
- Set Truc = WordObject.Selection
- With Truc
- Unit = wdStory
- End With
- Set Mypar2 = WordDoc.Paragraphs.Add
- Set MyRange2 = Mypar2.range
- MyRange2.InsertBefore("Texte" )
- Set LaSelection = WordObject.Selection.Find
- With LaSelection
- .Text = "Ligne 1"
- .Replacement.Text = "Bonjour, ceci est du texte !"
- .Forward = True
- .Wrap = wdFindContinue
- .Format = False
- .MatchCase = False
- .MatchWholeWord = False
- .MatchKashida = False
- .MatchDiacritics = False
- .MatchAlefHamza = False
- .MatchControl = False
- .MatchWildcards = False
- .MatchSoundsLike = False
- .MatchAllWordForms = False
- End With
- C'est la que ca merde ->
- Set machin = WordObject.Selection.Find.Execute
- With machin
- Replace = wdReplaceAll
- End With
- 'Code VBA provennant de Word
- 'WordObject.Selection.Find.Execute Replace:=wdReplaceAll
- 'Sauvegarde du document fusionné
- WordObject.ActiveDocument.SaveAs Server.MapPath("fichier.doc" )
- 'Fermeture des différents documents, de Word et libération de la variable
- WordObject.ActiveDocument.Close
- WordObject.Application.Quit
- Set WordObject = Nothing
- %>
|
Voila c'est le execute que j'arrive pas à faire
Merci à ceux qui ont une idée (et aux autres aussi )
---------------
"Ne jamais faire confiance à un truc qui peut saigner 4-5 jours par mois sans crever !"