Basiquement, je développe une fonction qui permet à l'utilisateur de choisir dans une Listbox les noms des gens qu'ils veulent voir affichés, les autres sont alors cachés. Le tout est basé sur un TCD
En pratique, j'ai une macro qui lit la Lisbox et stocke les nom dans un Array appelé "output" et qui a un maximum de 1000 éléments.
Suite à ça, j'utilise les noms listés dans "output", et je cherche à ce que ces noms restent affichés dans le TDC (champs de ligne).
Pour ce faire, j'ai écrit le code ci-dessous:
1- Cacher toutes les lignes
2- Afficher les personnes ("Buyers") qui sont listés dans "output"
Le problème est que ça ne marche pas vraiment. La partie qui retire les ligne fonctionne, mais je n'arrive pas à ré-afficher.
Qu'est ce qui ne va pas dans mon code?
Merci de votre aide!!
Olivier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Sub test() Dim pt As PivotTable Dim pi As PivotItem Dim output(0 To 1000) As String Dim i As Integer Dim j As Integer 'Crée Output à partir de la Listbox ByrSelectList, marche OK j = 0 For i = 0 To ActiveSheet.ByrSelectList.ListCount - 1 If ActiveSheet.ByrSelectList.Selected(i) Then output(j) = ActiveSheet.ByrSelectList.List(i) j = j + 1 End If Next i Set pt = ActiveSheet.PivotTables("PivotTable1") 'Cache toutes les lignes champs appelé "Buyer" dans le TCD For Each pi In pt.PivotFields("Buyer").PivotItems On Error Resume Next pi.Visible = False Next pi 'Affiche les lignes qui sont dans l'array output(), ne marche pas :'( For i = 0 To 1000 pt.PivotFields("Buyer").PivotItems(output(i)).Visible = True Next i end sub
Partager