Bonjour,
J'aimerais réaliser un publipostage dans word via une base de donnée Excel.
Les données Excel sont relatives à des références d'appareils.
Le but serait que l'opérateur remplisse la ligne correspondant à l'appareil rentré et qu'en lançant une macro, le document publiposté soit enregistré et imprimé sous word en sachant que chaque ligne correspond à un document enregistré à part lors du publipostage.
Pour ce faire, j'ai suivuis le tutoriel fort bien fait de heureuxoli sur le publipostage et en particulier la partie 7.G sur l' " Enregistrement de chaque document".
Je me heurte au problème suivant lorsque je compile :
"Erreur de compilation : Membre de méthode ou de données introuvable"
et la partie pointée est
iR = oDoc.MailMerge.DataSource.RecordCount
Pourriez vous m'indiquer quel pourrait être le problème s'il vous plaît !
Le programme est le suivant :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Dim i As Integer Dim iR As Integer Dim a As Integer Dim b As Integer Dim oDoc As Document Dim DocName As String Dim oDS As MailMergeDataSource Dim Count As Integer Dim n As Integer ActiveDocument.MailMerge.OpenDataSource Name:="DVS.xls" ' Affectation des objets Set oDoc = ActiveDocument Set oDS = oDoc.MailMerge.DataSource ChangeFileOpenDirectory "S:\Appareils.doc" iR = oDoc.MailMerge.DataSource.RecordCount Debug.Print iR For i = 1 To iR With oDoc.MailMerge 'Définition du premier et dernier enregistrement .DataSource.FirstRecord = i .DataSource.LastRecord = i ' Envoi des données dans un nouveau document .Destination = wdSendToNewDocument ' Exécution du publipostage .Execute ' Actualisation de l'enregistrement pour la sauvegarde .DataSource.ActiveRecord = i 'Utilisation de deux champs pour obtenir le nom du document DocName = .DataSource.DataFields("ChampFusionAuto1") DocName = DocName & "_" & .DataSource.DataFields("ChampFusionAuto5") ' Impression du document publiposté '.ViewMailMergeFieldCodes = wdToggle Debug.Print DocName; i End With ' ActiveDocument.PrintOut ' Sauvegarde du document publiposté With ActiveDocument .SaveAs FileName:=DocName & ".doc" '.Close End With
Merci d'avance si quelqu'un pouvait m'aider !
Bonne journée
Partager