Macro filtre TCD selection multiple

petar91

XLDnaute Nouveau
Bonjour à tous,

Nouveau sur ce forum et débutant en Macro, je souhaiterais faire appel à vos compétences pour pouvoir filtrer un champ de mon TCD à partir d'une plage de cellule, le tout via une macro qui fera cela automatiquement.

Dit autrement cela donne un fichier en 3 onglets/feuilles :

_feuille 1 - La base de donnée
_feuille 2 - Le TCD issu de la base de donnée
_feuille 3 - La liste des communes souhaitées

Grosso modo, l'utilisateur entre une liste de communes souhaitée dans la feuille 3, le TCD va s'auto-filtrer à partir de cette liste.

voici un bout de code qui me permet de faire cela, mais qu'à partir d'une cellule unique (filtre à partir d'une valeur contenue dans une cellule unique), il me faudrait le même type de code mais qui irait piocher mes valeurs a afficher dans une plage de cellule, par exemple B2 à B15 :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Selection_Commune As String
Selection_Commune = ActiveSheet.Range("B2").Value
If Not Application.Intersect(Target, Range("B2")) Is Nothing Then
    Sheets("feuille 2").PivotTables("TCD").PivotFields( _
        "Codes Communes").CurrentPage = Selection_Commune
End If
End Sub

Merci par avance pour vos réponses
 

Pièces jointes

  • exemple tcd filtre.xlsm
    111 KB · Affichages: 116

david84

XLDnaute Barbatruc
Re : Macro filtre TCD selection multiple

Bonsoir,
peut-être comme cela :
Code:
Sub TCD()
Dim i&, Plage As Range, Itm As String
Application.ScreenUpdating = False
Set Plage = Sheets("feuille 3").Range("B2:B10")
    
    Sheets("feuille 2").PivotTables("TCD").PivotFields("Codes Communes").CurrentPage = _
        "(All)"
    For i = 1 To Plage.Count
        Itm = Plage(i).Text
        With Sheets("feuille 2").PivotTables("TCD").PivotFields("Codes Communes")
            .PivotItems(Itm).Visible = True
        End With
        Itm = ""
    Next i
    Sheets("feuille 2").PivotTables("TCD").PivotFields("Codes Communes"). _
        EnableMultiplePageItems = True
Application.ScreenUpdating = True
End Sub
Attention : veiller à ce que les données présentes en feuille 3 existent dans le TCD !
A+
 

petar91

XLDnaute Nouveau
Re : Macro filtre TCD selection multiple

Bonjour,

Merci pour votre réponse, cependant une erreur apparait à la ligne :

.PivotItems(Itm).Visible = True

Entre temps j'ai pu avoir une réponse sur le forum excel-pratique qui semble fonctionner, je vous laisse le fichier en pièce jointe pour ceux qui souhaite analyser le code.

Cependant votre code m'intéresse également, car il semble moins complexe que celui du fichier joint, si vous trouvez une solution à l'erreur, je suis preneur !
 

Pièces jointes

  • Filtre auto TCD.xlsm
    113.4 KB · Affichages: 241
  • Filtre auto TCD.xlsm
    113.4 KB · Affichages: 248
  • Filtre auto TCD.xlsm
    113.4 KB · Affichages: 260

Discussions similaires

Réponses
16
Affichages
455

Membres actuellement en ligne

Statistiques des forums

Discussions
313 929
Messages
2 103 635
Membres
108 741
dernier inscrit
adel_benammar