Filtre tcd vba

m_m22 -  
 m_m22 -
Bonjour, je veux appliquer un filtre à un tcd selon la valeur retourné de la rechercheV,

mais ça ne marche pas et j'ai un message d'erreur " incompatibilité de type"

le code est le suivant, par exemple je veux filtrer le tcd selon si le résultat de la recherchev = "valeur1".

l'erreur est sur le premiere argument de la fonction, mais je n'arrive pas à régler ça.
pourriez vous m'aider s'il vous plait?

code :
Sub macro()

Range("A1").Select

With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Current ")
For Each p In .PivotItems

If Application.VLookup(p.value, Sheets("Feuille1 ").Range("B:K"), 9, False) = "valeur1" Then
p.Visible = True
Else
p.Visible = False
End If
Next p
End With
End Sub

2 réponses

  1. m_m22
     
    ha non, le message d'erreur je l'ai à la ligne de la recherchev
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      comment sais-tu que l'erreur est sur le premier argument?
      as-tu testé
      Application.VLookup("bonjour", Sheets("Feuille1 ").Range("B:K"), 9, False)


      as-tu testé un cas où le vlookup trouvait et retournait quelque-chose?

      je pense que, avant de comparer le résultat de vlookup avec un string, tu dois tester si il ne retourne par une erreur.
      dim vl
      vl=Application.VLookup(p.value, Sheets("Feuille1 ").Range("B:K"), 9, False)
      if not iserror(vl) then
      
      0
      1. m_m22 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        oui j'ai tester avec comme premiere argument une cellule fixe puis j'ai afficher le résultat et ça marche
        0