Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Piloter une édition Word avec champs remplis depuis un module Excel?

1 réponse
Avatar
Jean-Marc
Bonjour,
Voilà mon problème:
Dans Excel, on lance une macro, qui doit, entre autre, imprimer un document
WORD en préremplissant une dizaine de champs Word du genre :
Num_OF, Ref_Art etc..

Pouvez vous m'éclairer pour , dans mon module VBA :
- lancer Word (si non lancé)
- charger le fichier (toujours le même) si non chargé
- l'imprimer après avoir donner les valeurs aux champs de ce fichier
- revenir dans Excel

Merci d'avance pour vos conseils

Jean-Marc

1 réponse

Avatar
JB
Bonjour,

Exemple de Ole avec Word:

(penser à spécifier les biblio Word avec Outils/références)
Sur cet exemple, on crée des courriers au format .doc
Un modèle de lettre contient des signets définis avec la commande
Insertion/Signet :
Un programme Excel les remplace par les valeurs réelles

Sub ole()
Dim oApp As Word.Application, doc As Word.Document
Range("A2").Select ' premier client
Do While Not IsEmpty(ActiveCell)
On Error Resume Next
nf = ThisWorkbook.Path & "malettre.doc"
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
Set doc = oApp.Documents.Open(nf)
If Err <> 0 Then
MsgBox "Le fichier malettre.doc doit être dans " &
ThisWorkbook.Path
Exit Sub
End If
On Error GoTo 0 ' Annule la gestion d'erreur
'--
nom = ActiveCell.Value
rue = ActiveCell.Offset(0, 1).Value
ville = ActiveCell.Offset(0, 2).Value
email = ActiveCell.Offset(0, 3).Value
'--
With doc
.Bookmarks("nom").Range.Text = nom
.Bookmarks("rue").Range.Text = rue
.Bookmarks("ville").Range.Text = ville
End With
nom_doc = ThisWorkbook.Path & "" & nom & ".doc"
doc.SaveAs nom_doc
oApp.Quit
ActiveCell.Offset(1, 0).Select ' Client suivant
Loop
Set oApp = Nothing
MsgBox "Lettres crées"
End Sub

http://cjoint.com/?mjk3nuQdcR

JB


Bonjour,
Voilà mon problème:
Dans Excel, on lance une macro, qui doit, entre autre, imprimer un docume nt
WORD en préremplissant une dizaine de champs Word du genre :
Num_OF, Ref_Art etc..

Pouvez vous m'éclairer pour , dans mon module VBA :
- lancer Word (si non lancé)
- charger le fichier (toujours le même) si non chargé
- l'imprimer après avoir donner les valeurs aux champs de ce fichier
- revenir dans Excel

Merci d'avance pour vos conseils

Jean-Marc