Bonjour !
J'ai lu les tutoriels publipostages & pdf (notamment...) mais je n'arrive pas à trouver la solution à mon pbl.
Le but : j'ai une base de données de 10000 clients à qui je dois faire une lettre (ok, simple publipostage gérée par des champs ds Word).
Mais, ça se complique... chaque client achète un des 5 produits à un des 100 distributeurs. Pour chaque distributeur et à chq produit, il faut que j'envoie en pdf copies des documents envoyés aux clients (un pdf regroupant plusieurs lettres).
Souci n°1 : j'ai repris le tuto "publipostage" (7-G), il y a une fusion & attribution de noms pour des doc allant de i à i en les nommant en fonctions de 2 critères ... C'est top... mais pour mon cas, il faudrait aller de i à j avec j+1 correspondant à une combinaison produit / distributeur différente. Mais ça, je ne sais pas l'écrire.
Souci n°2 : pour la transformation en pdf, le tuto "Word en pdf" (III-B) donne une macro qui ne veut pas fonctionner. J'ai bien coché "enregistrement automatique", j'ai supprimé "date & heure" et n'est pas coché l'emplacement par défaut "mes documents", et malgré le texte de la macro, il nomme le fichier en date & heure.pdf sous mes documents... j'ai dû louper qq ch ??
Souci n°3 : pour que cela marche, je me disais que la macro devait permettre de trier la base de données selon les critères pdt / distributeur. J'ai trouvé le code suivant, mais qui s'applique à SQL, et non à Excel. Je ne sais pas écrire open... pour mon doc Excel.
Bref, j'ai bien cherché... mais il me manque des petites choses partout qui font que je n'obtiens pas le résultat attendu, il me manque aussi beaucoup de pratique pour le VBA surtout sous word ! Ce serait super gentil de bien vouloir me filer un coup de main...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub SetDataSortOrder() Dim appOffice As OfficeDataSourceObject Set appOffice = Application.OfficeDataSourceObject appOffice.Open bstrConnect:="DRIVER=SQL Server;SERVER=ServerName;" & _ "UID=user;PWD=;DATABASE=Northwind", bstrTable:="Employees" appOffice.SetSortOrder SortField1:="ZipCode", _ SortAscending1:=False, SortField2:="LastName", _ SortField3:="FirstName" End Sub
En vous remerciant bcp d'avance.
Elise
Partager