Impression pdf(s) d'un dossier via macro
Bonjour le Forum,
Après quelques recherches sur le net, j'ai trouvé pas mal de macro qui permettent d'imprimer UN fichier PDF d'un dossier via Excel.
Ma question est de savoir si il est possible de lancer l'impression de plusieurs fichiers PDF d'un dossier via macro?
Et si oui me donner un exemple de code....
Le top serait qu'au lancement de la macro, une fenêtre Windows s'ouvre pour que l'utilisateur sélectionne le dossier en question.
Un grand merci d'avance pour vos retours!!
Re,
J'ai trouvé ce code qui fait ce que je cherche....
Cependant, il faut renseigner en dur le chemin du répertoire qui contient les fichiers pdf?!!
Serait-il possible d'avoir une fenêtre demandant le dossier en question? Car j'ai plusieurs dossiers contenants des pdf à imprimer... du coup cela m'éviterait de faire un bouton pour chaque macro ^^
De plus, la macro lance acrobat... et il faut le fermer manuellement!! Serait-il possible de fermer l'application en auto?
Voici le code en question :
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
Const SW_SHOWNORMAL = 1
Dim NbFichiers As Long
Dim Tableau() As String
Const Dossier As String = " insérer ici le chemin du répertoire qui contient les fichiers pdf"
Sub Tst()
Dim hwnd As Long
Dim i As Long
Dim DossierOk As String
DossierOk = Dossier
If Right(DossierOk, 1) <> "\" Then DossierOk = Dossier & "\"
ListeFichiers DossierOk, "pdf"
If NbFichiers > 0 Then
For i = 1 To UBound(Tableau)
ShellExecute hwnd, "print", DossierOk & Tableau(i), "", "", SW_SHOWNORMAL
Next
End If
End Sub
Private Sub ListeFichiers(ByVal NomDossierSource As String, ByVal Extension As String)
Dim NomFichier As String
NomFichier = Dir(NomDossierSource & "*." & Extension)
Erase Tableau
NbFichiers = 0
Do While Len(NomFichier) > 0
NbFichiers = NbFichiers + 1
ReDim Preserve Tableau(1 To NbFichiers)
Tableau(NbFichiers) = NomFichier
NomFichier = Dir()
Loop
End Sub
Merci pour les réponses!!
Un petit Re UP!!
J'ai trouvé ce code qui permet d'ouvrir une fenêtre Windows pour choix de dossier :
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
x = .SelectedItems(1)
End With
Mais je n'arrive pas à l'insérer dans mon code précédent pour utiliser "x" comme chemin du répertoire des PDF à imprimer...
Si quelqu'un peut me filer un petit coup de main??
Merci par avance ^^