Bonjour à tous les pros d’Excel !
Je me permets de faire appel à vos compétences car je suis au bout de mes possibilités malgré mes nombreuses recherches et essais.
Dans un onglet, j’ai réussi à associer à un tableau croisé dynamique les fonctions suivantes, lorsque l’on active l’onglet :
- Rafraichissement du TCD ;
- Répétition des valeurs d’étiquettes de ligne pour les versions office 2003
- Sélection de l’ensemble des valeurs du filtre « N° série/lot » sauf des valeurs vide
Maintenant, je souhaiterai conserver les fonctions 1 & 2, mais avoir l’inverse de la fonction 3, c.a.d. n’afficher que les lignes du TCD où la valeur « N° série/lot » est vide. J’ai tout essayé avec l’enregistreur de macro et les forums mais n’y arrive pas notamment quand j’ajoute des lignes à la source de données du TCD et que je l’actualise. J’ai imaginé, via l’enregistreur de macro, la sélection de l’ensemble des valeurs pour prendre en compte les nouvelles lignes, la désélection de l’ensemble des valeurs et enfin la sélection uniquement des valeurs « vide ». Cela ne fonctionne pas automatiquement …
Voici mon code actuel :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Worksheet_Activate() ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh ActiveSheet.PivotTables("Tableau croisé dynamique1").RepeatAllLabels _ xlRepeatLabels With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° série/lot") .PivotItems("(blank)").Visible = False End With End Sub
Comment dois-je changer la dernière partie, ci-dessous, pour avoir uniquement les valeurs « vide » dans le filtre « N° série/lot » du TCD ?
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° série/lot") .PivotItems("(blank)").Visible = False End With
Merci par avance.
Jonathan
Partager