Bonjour à tous,
Encore une fois, je me tourne vers vous car je ne n'ai pas trouvé ma réponse.
J'ai un code qui me permet de changer un filtre de TCD. Mais mon code ne fonctionne plus car le TCD n'est pas nommé. Et maintenant que j'ai plusieurs TCD dans le fichier, forcément il ne sait plus où travailler.
On m'a suggérer d'ajouter quelque chose du genre dans le code: If Pt.Name <> 'Inventaire_dynamique' Then Return
Mais je n'ai pas réussi à l'écrire, ou à le mettre au bon endroit.
Merci d'avance pour votre aide
Voici le code.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$M$9" Then Exit Sub ' Changement du filtre du TDC par choix de centrale
Dim Sh As Worksheet, Pt As PivotTable
Dim Apparence, TypeDeBox As VbMsgBoxStyle
For Each Sh In Worksheets
For Each Pt In Sh.PivotTables
On Error GoTo NoColumn
With Pt.PivotFields("Centrale")
.ClearAllFilters
.CurrentPage = Target.Value
End With
Next Pt
Next Sh
Exit Sub
NoColumn:
'On utilisera l'Apparence suivante :
Apparence = vbCritical
'et un TypeDeBox suivant :
TypeDeBox = vbApplicationModal 'par défaut.
'pour toutes les msgbox qui vont suivre.
MsgBox "Aucune pièce pour cette centrale, modifier la liste déroulante.", vbCritical, "Stock centrale"
End Sub