Bonjour à tous,
Aussi étrange que ça puisse paraître, j'ai l'impression que personne ne s'est retrouvé dans ma situation : je souhaite effectuer un publipostage word depuis une macro vba excel. Seulement, ma source de données est contenue dans le même tableur excel (et la même feuille) que ma macro vba qui lance le publipostage.
Il en résulte qu'avec le code que j'ai utilisé, les données ne sont pas correctement transposées dans le document word, une adresse (champ texte) qui se transforme en 12:00:00 AM dans mon doc word, une date de naissance qui se transforme en 31690...
J'ai fait un test : dupliquer mon fichier excel et utiliser comme source de données le fichier dupliqué (donc pas celui qui exécute la macro, et qui n'est pas ouvert) et tout fonctionne très bien, sans changer une ligne de code. J'en conclus donc que c'est lié au fait que ma source soit dans le même fichier que ma macro, ou que j'ai oublié un paramètre.
Voilà ma macro :
Merci d'avance pour votre aide !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 'Publipostage Word Dim docWord As Word.Document Dim appWord As Word.Application Dim curRow As Integer curRow = ActiveCell.Row Application.ScreenUpdating = False Set appWord = New Word.Application appWord.Visible = True Set docWord = appWord.Documents.Open("C:\CONTRATS\modele.doc") 'PUBLIPOSTAGE WORD With docWord.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM `'Feuil1$'`" With .DataSource .FirstRecord = curRow - 1 .LastRecord = curRow - 1 End With .Execute Pause:=True End With Application.ScreenUpdating = True docWord.Close False appWord.Quit
Et bon dimanche avant tout
Julien
Partager