Bonjour ou rebonjour pour certain.
Question un poil plus complexe : puis-je, grâce à une unique BBD sur Excel, publiposter sur plusieurs documents words différents, sur lesquels les champs de fusion sont déjà préparés.
Je pensais que grâce à une macro de ce genre on pourrait arriver à quelque chose mais je m'y connais encore pas assez.
Merci d'avance à ceux qui pourront y réfléchir.
Question un poil plus complexe : puis-je, grâce à une unique BBD sur Excel, publiposter sur plusieurs documents words différents, sur lesquels les champs de fusion sont déjà préparés.
Je pensais que grâce à une macro de ce genre on pourrait arriver à quelque chose mais je m'y connais encore pas assez.
Merci d'avance à ceux qui pourront y réfléchir.
Code:
Private Sub commandButton1_Click()
[COLOR="Lime"] 'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"[/COLOR]
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String
NomBase = "C:\dossier\labase.xls"
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
[COLOR="Lime"] 'Ouverture du document principal Word[/COLOR]
Set docWord = appWord.Documents.Open("C:\leDocument.doc")
[COLOR="Lime"]'fonctionnalité de publipostage pour le document spécifié[/COLOR]
With docWord.mailMerge
[COLOR="Lime"]'Ouvre la base de données[/COLOR]
.OpenDataSource Name:= NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Feuil1$]"
[COLOR="Lime"] 'Spécifie la fusion vers l'imprimante[/COLOR]
.Destination = wdSendToPrinter
.suppressBlankLines = True
[COLOR="Lime"] 'Prend en compte l'ensemble des enregistrements[/COLOR]
With .DataSource
.firstRecord = wdDefaultFirstRecord
.lastRecord = wdDefaultLastRecord
[COLOR="Lime"] End With
'Exécute l'opération de publipostage[/COLOR]
.Execute Pause:=False
End With
Application.ScreenUpdating = True
[COLOR="Lime"] 'Fermeture du document Word[/COLOR]
docWord.Close False
appWord.Quit
End Sub