VBA - Impressions pas dans l'ordre

  • Initiateur de la discussion Initiateur de la discussion jehnkira
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jehnkira

XLDnaute Nouveau
Salut,

J'ai une macro qui me permet de lister les fichiers pdf d'un dossier, de les classer dans l'ordre alphabétique et de les imprimer.

Malheureusement quand elles sortent sur l'imprimante, elles ne sont pas dans l'ordre. Comment faire pour qu'elles le soient.

Voici ma macro juste pour l'impression :

Private Declare Function ShellExecute& Lib "shell32" Alias "ShellExecuteA" _
(ByVal hwnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, _
ByVal lpDirectory$, ByVal nShowCmd&)

Sub Impression()

Dim i As Integer

For i = 2 To FinTableau '(FinTableau est déterminé dans un autre module de mon projet VBA)
Fichier = Cells(3, 2).Value & "\" & Cells(i, 2).Value 'Cela me donne le chemin complet de mon fichier
ShellExecute 0&, "print", Fichier, vbNullString, vbNullString, vbNormalFocus
Next

End Sub


Merci d'avance pour votre aide
 
Re : VBA - Impressions pas dans l'ordre

Bonsoir Jehnrika

Quand tu dis que l'impression n'est pas dans l'ordre, c'est que les feuilles qui sortent sont carrément dans le désordre !?
Je ne comprends pas pourquoi, vu que ta procédure me semble tout a fait correcte

A+
 
Re : VBA - Impressions pas dans l'ordre

Salut mapomme 😉

Il ne me semble pas anormal que selon le temps de traitement pour coder l'impression de chaque fichier, leur ordre de sortie soit bouleversé

Heuu tu peux m'expliquer ?

Tout envois d'impression est mis en file d'attente dans le spooler
donc je ne vois pas comment ce que tu dis est possible ...

A+
 
Re : VBA - Impressions pas dans l'ordre

Re,

Comme dirait un de mes collègues du service informatique : problème aléatoire ... désespoir

Désolé, mais je ne pourrais pas t'aider
Ton code est correcte, sauf si les fichiers ne sont pas triés correctement dans ta feuille, à vérifier
 
Re : VBA - Impressions pas dans l'ordre

Je vais dire peut etre une ineptie, mais y a t'il la possibilité sous VBA de mettre une tempo dans mon programme qui permettre d'attendre quelques secondes (1 ou 2 s) avant que le fichier suivant soit envoyé ou de controler que le fichier précédent a bien été imprimé par l'imprimante (spoiler vide ou autre). Je ne sais pas.

Si oui, comment dois je adapter mon programme?
 
Re : VBA - Impressions pas dans l'ordre

Re,

Peut être avec un DoEvents
Code:
Sub Impression()
  Dim i As Integer
  For i = 2 To FinTableau '(FinTableau est déterminé dans un autre module de mon projet VBA)
    Fichier = Cells(3, 2).Value & "\" & Cells(i, 2).Value 'Cela me donne le chemin complet de mon fichier
   ShellExecute 0&, "print", Fichier, vbNullString, vbNullString, vbNormalFocus
   DoEvents
  Next
End Sub

A+
 
Re : VBA - Impressions pas dans l'ordre

Bonjour,

Par contre, j'ai un autre souci sur ma macro Impression.

Imaginons que j'ai une imprimante par défaut. Et dans ma macro, je choisis une autre imprimante. Chez moi, l'imprimante choisie est bien sélectionné.

Par contre, à mon travail, j'ai une imprimante hp branchée en usb sur ma tour et le photocopieur qui est sur le réseau de la société.
Et dans ce cas là, l'imprimante choisie n'est pas prise en compte et imprime automatiquement sur l'imprimante par défaut sur le pc. Pour forcer l'impression sur le photocopieur, je dois le meme en imprimante par défaut. Galère!!!

voici la macro.

Sub Impression()

Dim i As Integer
Dim TexteRecherche As String
Dim ImprimanteChoisie As String, ImprimanteInitiale As String

ImprimanteInitiale = Application.ActivePrinter

Application.Dialogs(Excel.XlBuiltInDialog.xlDialogPrinterSetup).Show
ImprimanteChoisie = Application.ActivePrinter
Application.ScreenUpdating = False

Select Case ChoixImpression
Case "Tous les fichiers"
For i = 6 To FinTableau
Fichier = Cells(3, 2).Value & "\" & Cells(i, 2).Value
ShellExecute 0&, "print", Fichier, vbNullString, vbNullString, vbNormalFocus
Cells(i, 3).Value = "Fichier imprimé"
Next
Case "Uniquement Type1"
For i = 6 To FinTableau
Fichier = Cells(3, 2).Value & "\" & Cells(i, 2).Value
If Cells(i, 2).Value Like "*Type1*" Then
ShellExecute 0&, "print", Fichier, vbNullString, vbNullString, vbNormalFocus
Cells(i, 3).Value = "Fichier imprimé"
End If
Next
Case "Uniquement Type2"
For i = 6 To FinTableau
NomFichier = Cells(i, 2).Value
TexteRecherche = "xxx"
Position = InStr(1, NomFichier, TexteRecherche, vbTextCompare)
If Position = 0 Then
Fichier = Cells(3, 2).Value & "\" & Cells(i, 2).Value
ShellExecute 0&, "print", Fichier, vbNullString, vbNullString, vbNormalFocus
Cells(i, 3).Value = "Fichier imprimé"
End If
Next
End Select
Application.ScreenUpdating = True
MsgBox "Les fichiers ont bien été imprimés"
Application.ActivePrinter = ImprimanteInitiale

End Sub


Je pense que je ne maitrise pas le fait que l'imprimantephotocopieur soit en réseau.

Merci de votre aide.

Jehnkira
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C
Réponses
1
Affichages
1 K
Compte Supprimé 979
C
Retour