Récupération d'items d'un DropDownList de TCD

Le
Philippe
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4464641
Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe
Philippe
Le #4464521
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe





MichDenis
Le #4464511
Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe





Philippe
Le #4464481
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe










MichDenis
Le #4464371
| moi ce que je veux ce sont tous les tiems visible
| dans le dropdown en excluant ceux qui sont cac

Un TDC peut avoir plusieurs "champ page"
Chaque "champ page" peut afficher "Tous" les entrées ou une entrée particulière
mais la liste déroulante d'un "champ page" affiche toujours la liste complète
des items à partir desquels il est possible de filtrer les données du TDC.

Conséquence : J'ai de la difficulté à saisir ce que tu désires.



"Philippe"
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe










Philippe
Le #4464271
non on peut tout a fait masquer des éléments de la liste a travers l'option
paramètres de champ
--
Philippe



| moi ce que je veux ce sont tous les tiems visible
| dans le dropdown en excluant ceux qui sont cac

Un TDC peut avoir plusieurs "champ page"
Chaque "champ page" peut afficher "Tous" les entrées ou une entrée particulière
mais la liste déroulante d'un "champ page" affiche toujours la liste complète
des items à partir desquels il est possible de filtrer les données du TDC.

Conséquence : J'ai de la difficulté à saisir ce que tu désires.



"Philippe"
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe















MichDenis
Le #4463951
Ce que tu veux c'est ceci :

'--------------------------------------
Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
For Each Pi In Pt.PivotFields("Titre").VisibleItems
ReDim Preserve S(A + 1)
S(A) = Pi.Name
Next
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'--------------------------------------



"Philippe"
non on peut tout a fait masquer des éléments de la liste a travers l'option
paramètres de champ
--
Philippe



| moi ce que je veux ce sont tous les tiems visible
| dans le dropdown en excluant ceux qui sont cac

Un TDC peut avoir plusieurs "champ page"
Chaque "champ page" peut afficher "Tous" les entrées ou une entrée particulière
mais la liste déroulante d'un "champ page" affiche toujours la liste complète
des items à partir desquels il est possible de filtrer les données du TDC.

Conséquence : J'ai de la difficulté à saisir ce que tu désires.



"Philippe"
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe















Philippe
Le #4463821
C'est presque cela sauf que ta procédure ne renvoie que l'item selected et
non pas l'ensemble des items visible dans le dropdownList

merci de ta patience

Ce que tu veux c'est ceci :

'--------------------------------------
Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
For Each Pi In Pt.PivotFields("Titre").VisibleItems
ReDim Preserve S(A + 1)
S(A) = Pi.Name
Next
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'--------------------------------------



"Philippe"
non on peut tout a fait masquer des éléments de la liste a travers l'option
paramètres de champ
--
Philippe



| moi ce que je veux ce sont tous les tiems visible
| dans le dropdown en excluant ceux qui sont cac

Un TDC peut avoir plusieurs "champ page"
Chaque "champ page" peut afficher "Tous" les entrées ou une entrée particulière
mais la liste déroulante d'un "champ page" affiche toujours la liste complète
des items à partir desquels il est possible de filtrer les données du TDC.

Conséquence : J'ai de la difficulté à saisir ce que tu désires.



"Philippe"
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe




















MichDenis
Le #4462751
Pour un champ page d'un PivotTable, on ne peut utiliser
la propriété visible d'un item pour déterminer si celui-ci est
présent ou non dans la liste.

De même auras-tu remarqué qu'à côté des items de la liste
dans un champ page, il n'y a pas de "case" comme un champ
"Colonne" permettant de filtrer les données selon les cases
que l'on a coché dans la liste des PivotItem du champ.

Cependant, si on désire effectuer un filtre sur un champ
page, on peut déplacer celui-ci dans un champ colonne,
effectuer le filtre (cocher le ou les items du champ) et le
replacer dans son champ page.

La procédure qui suit utilise la même parade pour
dresser la liste des items du champ "page" visible

If Pi.Visible = True And Pi.RecordCount > 0 Then
La ligne de code précédente de la procédure permet d'afficher
seulement les éléments de la liste visible qui ont des données dans
la section "Data" du pivotTable.

Il ne te reste plus qu'à adapter le nom des objets dans la procédure...
Est-ce que cela répond à ton besoin ?

'-----------------------------------------
Sub test()

Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Application.ScreenUpdating = False
With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
With Pf
.Orientation = xlColumnField
.Position = 1
For Each Pi In Pf.PivotItems
If Pi.Visible = True And Pi.RecordCount > 0 Then
A = A + 1
ReDim Preserve S(1 To A)
S(A) = Pi.Name
End If
Next
.Orientation = xlPageField
.Position = 1
End With
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'-----------------------------------------




"Philippe"
C'est presque cela sauf que ta procédure ne renvoie que l'item selected et
non pas l'ensemble des items visible dans le dropdownList

merci de ta patience

Ce que tu veux c'est ceci :

'--------------------------------------
Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
For Each Pi In Pt.PivotFields("Titre").VisibleItems
ReDim Preserve S(A + 1)
S(A) = Pi.Name
Next
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'--------------------------------------



"Philippe"
non on peut tout a fait masquer des éléments de la liste a travers l'option
paramètres de champ
--
Philippe



| moi ce que je veux ce sont tous les tiems visible
| dans le dropdown en excluant ceux qui sont cac

Un TDC peut avoir plusieurs "champ page"
Chaque "champ page" peut afficher "Tous" les entrées ou une entrée particulière
mais la liste déroulante d'un "champ page" affiche toujours la liste complète
des items à partir desquels il est possible de filtrer les données du TDC.

Conséquence : J'ai de la difficulté à saisir ce que tu désires.



"Philippe"
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe




















Philippe
Le #4462421
Je pense que oui
je ne pourrais tester ceci que ce soir, mais je pense que tu as trouver la
solution

Je te remercie encore de ne pas m'avoir laisser tomber



Pour un champ page d'un PivotTable, on ne peut utiliser
la propriété visible d'un item pour déterminer si celui-ci est
présent ou non dans la liste.

De même auras-tu remarqué qu'à côté des items de la liste
dans un champ page, il n'y a pas de "case" comme un champ
"Colonne" permettant de filtrer les données selon les cases
que l'on a coché dans la liste des PivotItem du champ.

Cependant, si on désire effectuer un filtre sur un champ
page, on peut déplacer celui-ci dans un champ colonne,
effectuer le filtre (cocher le ou les items du champ) et le
replacer dans son champ page.

La procédure qui suit utilise la même parade pour
dresser la liste des items du champ "page" visible

If Pi.Visible = True And Pi.RecordCount > 0 Then
La ligne de code précédente de la procédure permet d'afficher
seulement les éléments de la liste visible qui ont des données dans
la section "Data" du pivotTable.

Il ne te reste plus qu'à adapter le nom des objets dans la procédure...
Est-ce que cela répond à ton besoin ?

'-----------------------------------------
Sub test()

Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Application.ScreenUpdating = False
With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
With Pf
.Orientation = xlColumnField
.Position = 1
For Each Pi In Pf.PivotItems
If Pi.Visible = True And Pi.RecordCount > 0 Then
A = A + 1
ReDim Preserve S(1 To A)
S(A) = Pi.Name
End If
Next
.Orientation = xlPageField
.Position = 1
End With
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'-----------------------------------------




"Philippe"
C'est presque cela sauf que ta procédure ne renvoie que l'item selected et
non pas l'ensemble des items visible dans le dropdownList

merci de ta patience

Ce que tu veux c'est ceci :

'--------------------------------------
Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
For Each Pi In Pt.PivotFields("Titre").VisibleItems
ReDim Preserve S(A + 1)
S(A) = Pi.Name
Next
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'--------------------------------------



"Philippe"
non on peut tout a fait masquer des éléments de la liste a travers l'option
paramètres de champ
--
Philippe



| moi ce que je veux ce sont tous les tiems visible
| dans le dropdown en excluant ceux qui sont cac

Un TDC peut avoir plusieurs "champ page"
Chaque "champ page" peut afficher "Tous" les entrées ou une entrée particulière
mais la liste déroulante d'un "champ page" affiche toujours la liste complète
des items à partir desquels il est possible de filtrer les données du TDC.

Conséquence : J'ai de la difficulté à saisir ce que tu désires.



"Philippe"
non
mais la procédure que tu m'a donnée me renvoi tous les items sauf celui par
défaut dans le dropdown , moi ce que je veux ce sont tous les tiems visible
dans le dropdown en excluant ceux qui sont cachés et donc pas visible dans le
dropdown
merci de ton temps a plancher sur mon problème
--
Philippe



Et qu'est-ce que tu as présentement avec la procédure soumise ?


"Philippe"
Merci de ta réponse mais ce que j'aimerais c'est ne récupérer que les items
visibles
lorsque que l'on déroule la liste
--
Philippe



Tu dois adapter le nom de la feuille, nom du champ page dans la procédure


Sub test()
Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
For Each Pi In Pf.PivotItems
If Pi.Visible = False Then
a = a + 1
ReDim Preserve S(1 To a)
S(a) = Pi.Name
End If
Next
'Copie le résultat dans la plage de cellules
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub




"Philippe"
Bonjour a tous
J'aimerais pouvoir récupérer la liste des items d'un pivot de TCD placer
dans la zone de page d'une feuille et savoir quels sont les items cachés
Merci d'avance


--
Philippe

























Publicité
Poster une réponse
Anonyme