Filtre tcd vba

Fermé
m_m22 Messages postés 3 Date d'inscription mercredi 25 novembre 2020 Statut Membre Dernière intervention 25 novembre 2020 - 25 nov. 2020 à 12:53
m_m22 Messages postés 3 Date d'inscription mercredi 25 novembre 2020 Statut Membre Dernière intervention 25 novembre 2020 - 25 nov. 2020 à 14:20
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
A voir également:

2 réponses

yg_be Messages postés 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024 1 467
25 nov. 2020 à 14:00
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 bien
option explicit
en début de module?
0
m_m22 Messages postés 3 Date d'inscription mercredi 25 novembre 2020 Statut Membre Dernière intervention 25 novembre 2020
25 nov. 2020 à 14:02
ha non, le message d'erreur je l'ai à la ligne de la recherchev
0
yg_be Messages postés 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024 1 467
25 nov. 2020 à 14:18
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
m_m22 Messages postés 3 Date d'inscription mercredi 25 novembre 2020 Statut Membre Dernière intervention 25 novembre 2020 > yg_be Messages postés 22793 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mai 2024
Modifié le 25 nov. 2020 à 14:20
oui j'ai tester avec comme premiere argument une cellule fixe puis j'ai afficher le résultat et ça marche
0