Selection dans une listbox et impression d'un TCD
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:
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:
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!
marche en boucle, pour que la boucle marche !
Bonsoir.
Tu peux essayer de mettre la variable marche dans la boucle. Par exemple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Dim i As Integer
Dim marche As String
For i = 0 To List_Impression.ListCount - 1
marche = List_Impression(i).Value
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 |
C'est pour l'idée, je n'ai pas essayé !
Cordialement,
PGZ