Bonjour,
J'ai un souci de publipostage
Cette macro permet de récupérer les données Excel et de générer un document word pour chaque ligne du tableau d'excel
je souhaiterais pouvoir enregistrer en fonction d'un critère dans les données excel X lettres dans un fichier word et X lettres dans un autre fichier word.
Vous auriez des pistes
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 Sub donneeAvecExcel() 'Déclaration des variables Dim xlApp As Excel.Application Dim xlWb As Excel.Workbook Dim xlSh As Excel.Worksheet Dim iR As Integer Dim i As Integer, j As Integer Dim oDoc As Document 'Affectation des données aux variables Set xlApp = New Excel.Application Set xlWb = xlApp.Workbooks.Open("C:\Documents and Settings\Olivier\Mes documents\Mes sources de données\adresses.xlsx") Set xlSh = xlWb.Worksheets(1) 'Récupération du nombre de lignes et de colonnes iR = xlSh.UsedRange.Rows.Count ' Récupération des données de la feuille pour les injecter dans le document. For i = 2 To iR Debug.Print xlSh.Cells(iR, 2); iR Set oDoc = Documents.Add("C:\Documents and Settings\Olivier\Application Data\Microsoft\Templates\pub.dotm") oDoc.Bookmarks(1).Range.Text = xlSh.Cells(i, 1) oDoc.Bookmarks(2).Range.Text = xlSh.Cells(i, 2) oDoc.Bookmarks(3).Range.Text = xlSh.Cells(i, 3) oDoc.SaveAs "c:\temp\" & xlSh.Cells(i, 2) & "-" & Format(Date, "yy-mm-dd") & ".docx" oDoc.Close Set oDoc = Nothing Next i xlWb.Close xlApp.Quit Set xlSh = Nothing Set xlWb = Nothing Set xlApp = Nothing End Sub
Partager