Bonjour,
j'arrive à ouvrir tous les pdf et à les imprimer dans leurs intégralités à l'aide de la macro ci-dessous.
Mais je voudrais pouvoir imposer les pages à imprimer. Avez-vous une idée car je ne trouve pas ?
Merci d'avance.
j'ai aussi ce petit code qui permet d'ouvrir le pdf à une certaine page mais j'arrive pas à combiner les 2.
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 Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub PrintFichier(sNomFichier As String) Dim Rep As Integer Dim hWnd As Long 'Commande shell pour lancer l'impression du pdf ouvert Rep = ShellExecute(hWnd, "Print", sNomFichier, 0&, 0&, 1) End Sub Sub Tst() Dim sdossier As String Dim sFichier As String Dim fich As String 'Choix du répertoire Dim Repertoire As FileDialog Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker) Repertoire.Show If Repertoire.SelectedItems.Count > 0 Then _ MsgBox Repertoire.SelectedItems(1) sdossier = Repertoire.SelectedItems(1) fich = Dir(sdossier & "\*.pdf") 'Boucle qui ouvre les pdf du dossier les uns après les autres Do While fich <> "" PrintFichier sdossier & "\" & fich fich = Dir Loop End Sub
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 Sub Bouton4_Cliquer() 'ouvrir pdf à une page Dim sPDFfile As String Dim sAdobeCommand As String Dim WshShell As Object Const cAdobeReaderExe As String = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" sPDFfile = "P:\Partage Général\Production\Stérilisation Bressuire\2015\février\2015-02-02\MPI_1_9_-_119°_75mn_[02_02_2015_08_30_22].pdf" sAdobeCommand = " /a ""page=3=Open Actions"" " Shell cAdobeReaderExe & sAdobeCommand & Chr(34) & sPDFfile & Chr(34), vbNormal Application.Wait (Now + TimeValue("0:00:05")) end sub
Partager