Bonsoir à tous,
je travaille sur un projet permettant de fusionner via PDFCREATOR des feuilles EXCEL alternées avec un document PDF.
Voici le code permettant d'imprimer les PDF.
Le soucis, l'impression de mes PDF prend beaucoup plus de temps que mes feuilles EXCEL, du coup le code continue et je me retrouve avec toutes mes feuilles EXCEL au début de ma liste de fusion et mes PDF à la fin.
La solution serait donc d'attendre que la commande shellexecute soit "fini" avant de continuer mon code.
Je ne peux pas utiliser la fonction wait ou autre car la durée d'impression du PDF est extrêmement variable.
J'ai essayé la fonction DoEvents sans sucés.
Ce sujet à déjà été traité mais jamais résolu sur différentes forums, alors je remercie tous ceux qui pourrait m'aider à trouver la solution.
Bonne soirée, Merci.
je travaille sur un projet permettant de fusionner via PDFCREATOR des feuilles EXCEL alternées avec un document PDF.
Voici le code permettant d'imprimer les PDF.
Code:
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
Rep = ShellExecute(hwnd, "Print", sNomFichier, 0&, 0&, 1)
DoEvents
End Sub
Sub Tst()
Dim sDossier As String
Dim sFichier As String
Dim Nomfichier As Variant
Nomfichier = ActiveCell.Hyperlinks(1).Address
If Left(Nomfichier, 2) = "FM" Then
Nomfichier = ActiveWorkbook.Path & "\" & Nomfichier
End If
PrintFichier (Nomfichier)
End Sub
Le soucis, l'impression de mes PDF prend beaucoup plus de temps que mes feuilles EXCEL, du coup le code continue et je me retrouve avec toutes mes feuilles EXCEL au début de ma liste de fusion et mes PDF à la fin.
La solution serait donc d'attendre que la commande shellexecute soit "fini" avant de continuer mon code.
Je ne peux pas utiliser la fonction wait ou autre car la durée d'impression du PDF est extrêmement variable.
J'ai essayé la fonction DoEvents sans sucés.
Ce sujet à déjà été traité mais jamais résolu sur différentes forums, alors je remercie tous ceux qui pourrait m'aider à trouver la solution.
Bonne soirée, Merci.
Dernière édition: