Filtre tcd vba
m_m22
-
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
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
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
à quelle ligne as-tu le message d'erreur?
merci d'utiliser les balises de codes (vba est du basic): https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
as-tu bienoption explicit
en début de module? -
-
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
-