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!
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 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
Merci d'avance pour vos conseils!
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
Partager