Bonjour,
Je me permets ce post parce qu'ayant cherché sur d'autres posts, je n'arrive pas à résoudre mon problème.
J'ai un TDC que je refresh et je voudrais qu'il me filtre uniquement une donnée dans le TDC en fonction d'une valo d'une cellule.
J'ai donc fait ce code:
Il me met malheureusement une erreur 438.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Sub essai() Dim ligne As Double Set dep_oph = Sheets("Dépenses Ophtalmo").Range("J1", Sheets("Dépenses Ophtalmo").Range("J1").End(xlDown)) ligne = 2 Do Until ligne > dep_oph.Count - 1 If Sheets("Dépenses Ophtalmo").Cells(ligne, 10) <> 3524 Then Sheets("Dépenses Ophtalmo").PivotTables("Tableau croisé dynamique2").PivotFields("UF").PivotItems(Sheets("Dépenses Ophtalmo").Cells(ligne, 10)).Visible = False Set dep_oph = Sheets("Dépenses Ophtalmo").Range("J1", Sheets("Dépenses Ophtalmo").Range("J1").End(xlDown)) End If ligne = ligne + 1 Loop MsgBox "Traitement terminé" End Sub
En l'occurrence, Sheets("Dépenses Ophtalmo").Cells(ligne, 10) = 2530, qui est bien différent de 3524, donc je suis ok, d'ailleurs il rentre bien dans le if.
J'ai essayé en mettant directement ceci:
Cela a fonctionné, cela vient donc des guillemets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sheets("Dépenses Ophtalmo").PivotTables("Tableau croisé dynamique2").PivotFields("UF").PivotItems("2530").Visible = False
J'ai tenté également avec ce code:
Mais cela n'a pas marché (avec et sans le value, avec et sans du visible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sheets("Dépenses Ophtalmo").PivotTables("Tableau croisé dynamique2").PivotFields("UF").Sheets("Dépenses Ophtalmo") = Sheets("Dépenses Ophtalmo").Cells(ligne, 10).Value
Pour info, j'ai essayé d'adapter ce que j'avais trouvé dans ce post:
https://www.developpez.net/forums/d1...-tcd-sous-vba/
Merci d'avance pour votre aide, je sèche un peu.
Bonne journée
Partager