J'ai une liste déroulante qui cchange les PivotItems d'un PivotFiels specific. Je cherche un moyen de créer une liste dans une collone de tous ces PivotsItems et ainsi me servir de cette liste comme source de donnée pour ma liste déroulante.
Voici le code que j'ai fait et que j'utilise.
Alors dans la feuille où j'ai ma liste déroulante, j'ai ce Worksheet_Change:
- Code: Tout sélectionner
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3") = "xbox360" Then Call TCDxbox360
If Range("C3") = "WII" Then Call TCDwii
If Range("C3") = "ps3" Then Call TCDps3
If Range("C3") = "PC" Then Call TCDpc
End Sub
Ensuite le code qui bind les string sélectionnées dans la liste déroulante avec le PivotItems correspondant (je cache tout et puis j'affiche cette item).
- Code: Tout sélectionner
Dim monPivIt As Object, plateform
plateform = "xbox360"
Sheets("XML Parser").Visible = True
Sheets("XML Parser").Select
Application.ScreenUpdating = False
With ActiveSheet.PivotTables("XML_Parser").PivotFields("Console")
For Each monPivIt In .PivotItems
monPivIt.Visible = True
Next
For Each monPivIt In .PivotItems
If monPivIt.Name <> plateform Then monPivIt.Visible = False
Next
End With
Application.ScreenUpdating = True
Sheets("XML Parser").Visible = False
Application.Goto Sheets("initialSetup").Range("A1")
End Sub
Le problème c'est que la liste déroulante contient des string que j'ai entré à la main et cela peut entrainer des erreurs. Je voudrais donc créer ma source pour la liste déroulante a partir d'une macro VB qui va lister tous les items de mon .PivotTables("XML_Parser").PivotFields("Console").
Aussi, je il faudrait que je trouve un moyen pour que mon binding se fasse sans avoir à entrer manuellement les strings à la main (If Range("C3") = "xbox360" Then Call TCDxbox360 )
Je n'ai pas reçu de formation en VBA et je tapotte du mieux que je peux. Seulement j'arrive à rien depuis des jours.
Merci de bien vouloir m'aider!