bonjour à toutes et tous,


dans le cadre de mon travail, j'ai créé un fichier excel avec des TCD.

je souhaite, via un userform avec ListBox et Bouton, que l'utilisateur puisse sélectionner dans la listbox les items qui correspondent aux valeurs du champ de page de mon TCD et imprimer automatiquement chaque page de mon TCD correspondantes...

par exemple, j'ai une liste de 13 noms, qui permettent de filtrer mon tableau. Si l'utilisateur sélectionne les noms 1-5 et 8 et bien cela lance automatiquement l'impression des tcd correspondants...

j'ai réussi à faire les codes suivants, le premier fonctionne nickel, mais je ne sais imprimer qu'une feuille à la fois... et le second imprime 12 fois le même marché!

Je présume que je dois me baser sur le premier et créer une boucle, mais j'ai besoin de votre aide pour y parvenir!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
If List_Selection.ListIndex = -1 Then Exit Sub
 
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields(" "). _
     CurrentPage = List_Selection.List(List_Selection.ListIndex)
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh
 
    Me.Hide
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Me.Show
et le second code que j'ai fait, mais qui imprime 12 fois la même page!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Private Sub But_Imprimer_Click()
     Dim i As Integer
     Dim marche As String
     marche = List_Impression.Value  ' <- c'est ici que je n'arrive pas à intégrer toutes les noms de mes marchés
 
     For i = 0 To List_Impression.ListCount - 1
 
        ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields(" "). _
            CurrentPage = marche ' <- variable déclarée ci-dessus et qui fonctionne à condition que je clique sur une ligne de ma listbox  et qui imprime 12 fois ce marché... alors que moi je souhaite imprimer une fois chaque marché présent dans la listbox!
       ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Next
 
    End Sub
Merci d'avance pour vos conseils!