Enchainer deux listes déroulantes filtrantes

Fermé
Klems29i Messages postés 7 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 15 avril 2016 - 15 avril 2016 à 15:38
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 15 avril 2016 à 19:08
Bonjour,


Je voulais savoir s'il était possible d'enchainer deux liste déroulantes filtrantes sur la même feuille excel.


Les codes sont les suivants :


Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pvt As PivotTable, VMag As String

If Target.Address = "$C$2" Then
With Sheets("synthese")
VMag = .Range("C2")
For Each Pvt In .PivotTables
With Pvt.PivotFields("agence")
.ClearAllFilters
.CurrentPage = VMag


End With
Next Pvt
End With
End If
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pvt As PivotTable, VMag As String

If Target.Adress = "$D$2" Then
With Sheets("synthese")
VMag = .Range("D2")
For Each Pvt In .PivotTables
With Pvt.PivotFields("Ligne")
.ClearAllFilters
.CurrentPage = VMag
End With
Next Pvt
End With
End If
End Sub


La première filtre la ville et la seconde sert à filtrer la ligne d'appel.

Merci par avance.

Cordialement

A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 avril 2016 à 19:08
Bonjour,

Sans le classeur, pas facile de tester mais ainsi cela devrait fonctionner :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pvt As PivotTable

If Target.Address = "$C$2" Or Target.Address = "$D$2" Then
    With Sheets("synthese")
        For Each Pvt In .PivotTables
            With Pvt.PivotFields("agence")
                .ClearAllFilters
                .CurrentPage = Range("$C$2").Value
            End With
            With Pvt.PivotFields("Ligne")
                .ClearAllFilters
                .CurrentPage = Range("$D$2").Value
            End With
        Next Pvt
    End With
End If
End Sub

0