XL 2019 Impression en boucle

  • Initiateur de la discussion Initiateur de la discussion duplaly
  • 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 !

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

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

- 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
7
Affichages
106
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
503
Retour