Salut,
Il faut commencer par :
- Créer et tester un fichier de fusion avec Word
- Extraire les champs de la table MEMBRE et ensuite les enregistrer dans un fichier .txt (ou .cequetuvoudras).
Dans ce fichier, tu devras indiquer en première ligne les noms de champs qui correspondent au document de fusion :
Nom;Prenom;adresse;codepostal;ville;pays
Durand;Jacques;12, allée des Marguerittes;78000 Versailles;France
Dupont;Jeanine;7 rue Charles de Gaulle;93300;Vincennes
- Et après tu fais un copier/coller de la fonction suivante :
Function WinWord(FichierModele, Donnee, Optional SendByMail = False) As Integer
On Error Resume Next
Dim wPath, X, wData, wDefault, wMailMerge
Dim wObject As Object
Const wdOpenFormatAuto = 0
Const wdFormLetters = 0
Const wdDefaultFirstRecord = 1
Const wdDefaultLastRecord = -16
Const wdSendToPrinter = 1
Const wdSendToEmail = 2
wDefault = App.Path & ""
On Error GoTo ErreurWORD
Set wObject = CreateObject("Word.Application")
wObject.Visible = True
wObject.ChangeFileOpenDirectory wDefault
wObject.Documents.Open FileName:="" & FichierModele & "", ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=True, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto
Set wMailMerge = wObject.ActiveDocument.MailMerge
wMailMerge.OpenDataSource Name:= _
"" & Donnee & "", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="", SQLStatement1 _
:=""
If SendByMail = False Then
With wMailMerge
.Destination = wdSendToPrinter
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute
End With
Else
With wMailMerge
.Destination = wdSendToEmail
.MailAsAttachment = True
.MailAddressFieldName = "To"
.MailSubject = "Vous avez un courrier courrier !!!"
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute
End With
End If
wObject.ActiveDocument.Save
wObject.ActiveDocument.Close
wObject.Application.Quit
Set wMailMerge = Nothing
Set wObject = Nothing
WinWord = True
Exit Function
ErreurWORD:
On Error Resume Next
MsgBox Err.description
WinWord = False
Exit Function
End Function
N’oublies pas d’ajouter la référence Word 10 (ou Word 9) à ton projet.
Voilà,
++
[ XtOf ]
[ XtOf ]