Imprimer plusieur fichier Excel

Bonjour

j'aurai besoin d'un peu d'aide .

Voila j'ai créé une macro pour imprimer plusieur fichiers excel

mais quand je lance la macro les fichiers ne sortent pas dans l'ordre que je souhaite c'est aléatoire

je voudrais qu'il sorte comme dans la macro

codrialement

voici la macro

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

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

Sub PrintFile()

If Range("A4") = "Vrai" Then

Const MyFile As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.801_ Accueil du nouveau personnel.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile, "", "", 1

End If

If Range("A6") = "Vrai" Then

Const MyFile1 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.802_Accès à l'entreprise du personnel non-muni d'une carte d'accès.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile1, "", "", 1

End If

If Range("A8") = "Vrai" Then

Const MyFile2 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.803_Consignes générales au poste.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile2, "", "", 1

End If

If Range("A10") = "Vrai" Then

Const MyFile3 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.805_Organisation et appel des secours en cas d'accident.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile3, "", "", 1

End If

If Range("A12") = "Vrai" Then

Const MyFile4 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.806_Consignes d'atelier par type de matériel.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile4, "", "", 1

End If

If Range("A14") = "Vrai" Then

Const MyFile5 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.807_Coupure générale d'urgence alimentation électrique.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile5, "", "", 1

End If

If Range("A16") = "Vrai" Then

Const MyFile6 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.808_Consignes de sécurité fermeture du gaz par atelier.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile6, "", "", 1

End If

If Range("A18") = "Vrai" Then

Const MyFile7 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.809_Intervention centrales de traitement d'air du G01.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile7, "", "", 1

End If

If Range("A20") = "Vrai" Then

Const MyFile8 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.810_Utilisation du compacteur G6.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile8, "", "", 1

End If

If Range("A22") = "Vrai" Then

Const MyFile9 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.811_Utilisation four infra-rouge G7.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile9, "", "", 1

End If

If Range("A24") = "Vrai" Then

Const MyFile10 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.812_Utilisation des générateurs à rayons X.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile10, "", "", 1

End If

If Range("A26") = "Vrai" Then

Const MyFile11 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.813_Utilisation des chariots élévateurs.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile11, "", "", 1

End If

If Range("A28") = "Vrai" Then

Const MyFile12 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.814_Utilisation de la nacelle automotrice.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile12, "", "", 1

End If

If Range("A30") = "Vrai" Then

Const MyFile13 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.815_Mise à la terre des BIGBAGS.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile13, "", "", 1

End If

If Range("A32") = "Vrai" Then

Const MyFile14 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.816_Manoeuvre des rampes hydrauliques (quais).docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile14, "", "", 1

End If

If Range("A34") = "Vrai" Then

Const MyFile15 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.817_Déchargement des camions stockage-déstockage des balles de matières premières.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile15, "", "", 1

End If

If Range("A36") = "Vrai" Then

Const MyFile16 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.818_Pose ou dépose de cale(s) sur la lamination extérieure.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile16, "", "", 1

End If

If Range("A38") = "Vrai" Then

Const MyFile17 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.819_Consignes de sécurité pour l'utilisation des dynamomètres.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile17, "", "", 1

End If

If Range("A40") = "Vrai" Then

Const MyFile18 As String = "K:\TD-Quality\Private\FRA\Qualité Système\DOCQUAL\57 - SECURITE\CS_57.820_Consignes de sécurité intervention sur la machine de liage.docx"

ShellExecute FindWindow("XLMAIN", Application.Caption), "print", MyFile18, "", "", 1

End If

End Sub

Bonsoir,

Une piste peut-être : essayer avec une temporisation de 1 ou 2 secondes (ou plus, à voir) après chaque instruction "ShellExecute", en utilisant l'API Sleep

Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Actuellement, le code VBA s'éxécute et les Shell sont lancés, le VBA n'a plus la main sur ce qui se passe (traitement asynchrone).

Le traitement VBA doit mettre 1 seconde à s'exécuter (supposition ...) alors que les déclenchements réels des impressions sont beaucoup plus longs.

Tout ceci n'est qu'une hypothèse ! A tester

Bonne soirée

Bouben


Re-bonsoir,

Une autre proposition : ouvrir les documents et les imprimer (on repasse dans ce cas en synchrone, l'impression se lance une fois que le doc à fini de s'ouvrir)

Cf exemple en PJ, à tester.

P.S. : ce sont des Word (?) et non des Excel (?).

Bonne soirée

Bouben

Rechercher des sujets similaires à "imprimer fichier"