Bonjour
je cherche à imprimer des documents issus de publipostage en pdf.
J'ai regardé le poste suivant et cela m'a pas mal dépanné http://www.developpez.net/forums/d68...stage-pdf-vba/.
Mais j'ai un soucis : lorsque j'appel la macro testPrintPDF avec deux arguments cela ne fonctionne pas.
- si je suit en mode pas à pas : OK génération de mes pdf
- si j'ai un point d'arrêt, génération du dernier pdf
- si je suis en sans point d'arrêt et exécution, cela ne génère pas mes pdf.
de plus pour générer mes pdf je dois mettre en commentaire les deux lignes suivantes :
PDFCreator1.cClose (pas forcément gênant.
ActivePrinter = oldPrinter (OK celle-là c'est pas grave)
Quelqu'un aurait-il une idée ?
Merci par avance
ci-dessous l'appel à la macro :
ci-dessous le code de la macro modifiée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 stChemin = "C:TEMP\AF\MAIL\" stNom = xlSh.Cells(i, 1) & "-" & xlSh.Cells(i, 7) & "-" & Format(Date, "yy-mm-dd") & ".pdf" Call testPrintPDF(stChemin, stNom)
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 Sub testPrintPDF(st1 As String, st2 As String) Dim oldPrinter As String Dim stChemin As String Dim stNom As String Shell "C:\Program Files\PDFCreator\PDFCreator.exe", vbNormalFocus Dim PDFCreator1 As New clsPDFCreator oldPrinter = ActivePrinter 'On va mettre en mémoire dans une 'variable le nom de l'imprimante par défaut ActivePrinter = "PDFCreator" 'Mettre comme imprimante par défaut PDFCreator If Len(ActiveDocument.Path) = 0 Then stChemin = "C:TEMP\AF\MAIL\" Else 'stChemin = ActiveDocument.Path stChemin = st1 End If 'Si le document n'a pas été sauvegardé, le PDF sera dans le répertoire c:\temp 'et un nom par défaut documentPDF;pdf If Len(ActiveDocument.Name) = 0 Then stNom = "documentPDF.pdf" Else stNom = st2 End If 'les option PDFCreator With PDFCreator1 .cOption("UseAutosave") = 1 .cOption("UseAutosaveDirectory") = 1 .cOption("AutosaveDirectory") = stChemin .cOption("AutosaveFilename") = stNom .cOption("AutosaveFormat") = 0 ' 0 = PDF .cStart .cClearCache End With ActiveDocument.PrintOut Background:=True 'PDFCreator1.cClose 'ActivePrinter = oldPrinter ' Change l'imprimante par défaut End Sub
Partager