Mettre un filtre automatique dans un tableau croisé dynamiqueVBA

Résolu/Fermé
solidarinfo Messages postés 147 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 8 décembre 2021 - Modifié par solidarinfo le 8/01/2017 à 22:32
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 8 janv. 2017 à 22:01
Bonjour,

Je veux mettre en place un filtre automatique dans un tableau croisé va VBA.
L'idée est que la dernière information du filtre soit celle qui sera sélectionnée.

En effet une fois que je mets à jour le TCD le nouvel element rajouté est toujours en bas.

j'arrive à sélectionner et deselectionner tous les elements jusqu'au dernier mais il plante à la fin.
Voici ce que j'ai fait :

 
With ActiveSheet.PivotTables("PivotTable1").PivotFields("STATUT")
For i = 1 To .PivotItems.Count
If .PivotItems(i).Value > (Deb - 1) And .PivotItems(i).Value < (Fin + 1) Then
.PivotItems(i).Visible = True
Else
.PivotItems(i).Visible = False
End If
Next i
'.Orientation = xlPageField
End With


Ce que je souhaite c'est qu'avec cette boucle, elle me selectionne la derniere valeur du filtre.
"s'il y a plus de valeur aprés, arrete la boucle et selectionne la valeur actuelle".

Inutile de vous préciser que je suis débutant :)

Merci d'avance de votre aide.


1 réponse

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
8 janv. 2017 à 22:01
Il plante sur quelle ligne, avec quel message d'erreur?
Quel est le rôle de Deb et de Fin?
Tu n'as pas clairement expliqué ce que tu voulais obtenir.
Tu as peut-être simplement besoin de ceci?
For i = 1 To .PivotItems.Count -1
            .PivotItems(i).Visible = False
Next i
 .PivotItems(.PivotItems.Count).Visible = True

Sinon, explique ce que tu entends par "dernier".
0