XL 2019 Impression en boucle

duplaly

XLDnaute Occasionnel
Bonjour
Comment je fais pour automatiser une tâche d'impression en boucle?

J'aimerais quand je lance le code, il va chercher dans la colonne "I" Catégorie de la feuille rapport le mot dépôt.
Chaque ligne trouvée, il sélectionne la rangée ("A:H") et copie les données pour les coller en colonne sur la feuille "Dépôt" qui a les mêmes champs.
Une boîte de dialogue qui me demande si je souhaite imprimer la feuille avec la sélection.
vbyes, on imprime la feuille dépôt et on passe à la prochaine sélection
vbno, on passe à la prochaine sélection.

Une impression en boucle jusqu'à la fin de la colonne "I"

Merci pour votre aide à l'avance!
 

Pièces jointes

  • Impression en batch.xlsx
    19.7 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Duplaly,
un essai en PJ avec :
VB:
Sub Impression()
    DL = Range("A65500").End(xlUp).Row
    NbImpression = Application.CountIf(Range("J1:J" & DL), "Depot"): Nimp = 0
    For L = 2 To DL
        If Cells(L, "J") = "Depot" Then
            Range("A" & L & ":J" & L).Interior.Color = vbGreen      ' Ligne considérée en vert
            Titre = "Nombre potentiel d'impression restant : " & NbImpression - Nimp
            reponse = MsgBox("Doit on imprimer ce client ?", vbYesNoCancel + vbExclamation + vbDefaultButton2, Titre)
            Range("A" & L & ":J" & L).Interior.Color = vbWhite      ' Ligne considérée en blanc
            If reponse = vbCancel Then Exit Sub                     ' Annulation
            If reponse = vbYes Then                                 ' Impression demandée
                With Sheets("Dépôt")
                    For Nitem = 1 To 8                              ' Transfert des données
                        ' N° ligne où ranger y = 2x + 3
                        .Cells(2 * Nitem + 3, "D") = Cells(L, Nitem)
                    Next Nitem
                    Application.ScreenUpdating = False
                    .PrintOut                                       ' Impression
                    Application.ScreenUpdating = True
                End With
            End If
            Nimp = Nimp + 1                                         ' Nombre de potentielles impression restantes
        End If
    Next L
End Sub
( NB: Annuler permet de tout arrêter et de sortir sans faire défiler jusqu'à la fin )
 

Pièces jointes

  • Impression en batch.xlsm
    29.2 KB · Affichages: 8

Discussions similaires

Réponses
5
Affichages
367
Compte Supprimé 979
C