Je souhaite créer un outil pour "faciliter" le publipostage (FD.ods) :
- renseignements saisis directement dans le fichier
- fichier Calc (source des données - fichTest.ods) sélectionné via une boite de dialogue
- si besoin (plus d'une feuille dans le classeur), sélection de la feuille contenant les données via une boite de dialogue
- fichier Writer (modèle pour le publipostage - fichTest.odt) sélectionné via une boite de dialogue
- création (la première fois) ou mise à jour de la base de données (fdBase.odb) (merci à Dude : https://forum.openoffice.org/fr/forum/v ... =15&t=6872)
- mise à jour des champs de fusion (merci à JacquesF : https://forum.openoffice.org/fr/forum/v ... on#p197017)
- publipostage (merci à Bernard Marcelly et Laurent Godard pour leur très utile livre Programmation OpenOffice.org 3 Macros OOoBASIC et API)
Mon problème intervient lors du publipostage dont voici le code :
Code : Tout sélectionner
Sub Publipostage(publiDoc As String, oTable As String, nomCol As String, oType As Long)
' Avec publiDoc = URL du fichier Writer, oTable = nom de la feuille contenant les données, nomCol = nom de la colonne choisie pour le préfixe, oType = 0 si fichiers multiples - 1 si fichier unique
Dim props()
With createUnoService("com.sun.star.text.MailMerge")
.DataSourceName = nomSource
.CommandType = com.sun.star.sdb.CommandType.TABLE
.Command = oTable
.outputType = com.sun.star.text.MailMergeType.FILE
.saveAsSingleFile = oType
.fileNameFromColumn = True
.fileNamePrefix = nomCol
.documentURL = publiDoc
If Dir(convertToURL(getRep(ThisComponent) & nomListe & "\")) = "" Then mkDir convertToURL(getRep(ThisComponent) & nomListe & "\")
.outputURL = convertToURL(getRep(ThisComponent) & nomListe & "\")
.execute(props())
End With
End Sub