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:
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
Il me met malheureusement une erreur 438.
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Sheets("Dépenses Ophtalmo").PivotTables("Tableau croisé dynamique2").PivotFields("UF").PivotItems("2530").Visible = False
Cela a fonctionné, cela vient donc des guillemets.

J'ai tenté également avec ce code:
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
Mais cela n'a pas marché (avec et sans le value, avec et sans du visible.
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