Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA - autofilter - problème pour filter #N/A

21 réponses
Avatar
DarthMac
Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis dans une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macro VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur cette
(non-)valeur, de même qu'on peut enregistrer une macro le faisant... qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente de prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac

10 réponses

1 2 3
Avatar
RGI
bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI


Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis dans une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macro VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur cette
(non-)valeur, de même qu'on peut enregistrer une macro le faisant... qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente de prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac



Avatar
DarthMac
oui, certes, ça ma macro me le dit aussi... mais que faire pour que cela
n'arrive pas ?

thanks,

mac


bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI


Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis dans une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macro VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur cette
(non-)valeur, de même qu'on peut enregistrer une macro le faisant... qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente de prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac






Avatar
RGI
voir

on error resume next

espérant que ce soit ça qui soit recherché

RGI

oui, certes, ça ma macro me le dit aussi... mais que faire pour que cela
n'arrive pas ?

thanks,

mac



bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI



Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis dans une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macro VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur cette
(non-)valeur, de même qu'on peut enregistrer une macro le faisant... qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente de prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac








Avatar
DarthMac
merci RGI de répondre, mais hélas en fait non, car sinon je l'aurais mis de
moi-même. Le fait est que justement je créais cette macro aujourd'hui (qui me
servira ensuite souvent je pense) poru filtrer sur des tableaux ou ce que je
cherche c'est les #N/A sur une colonne donnée car cela me permet de
sélectionner les entrées différentes suite à une mise à joru de données.

Alors je sais que je pourrais aussi changer la formule pour que ce ne soit
pas un N/A qui s'affiche et que du coup, la macro fonctionne, mais je suis
têtu et je veux savoir s'il est possible de filtrer sur #N/A par macro VBA...

en fait ;-)

Mac-Estion


voir

on error resume next

espérant que ce soit ça qui soit recherché

RGI

oui, certes, ça ma macro me le dit aussi... mais que faire pour que cela
n'arrive pas ?

thanks,

mac



bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI



Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis dans une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macro VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur cette
(non-)valeur, de même qu'on peut enregistrer une macro le faisant... qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente de prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac











Avatar
Paul V
hello tous,

Mon humble grain de sel,

#N/A n'est pas une valeur mais un message d'erreur et donc lorsque tu
l'entres comme critère de filtrage, Excel se marre.

Ce n'est pas le cas quand tu le fait manuellement (j'imagine que tu parles
de la liste de choix) .

Pour t'en sortir, il me semble que tu devras faire un test préalable sur la
cellule pour voir si le message est #n/a,avec la fonction estna, puis lancer
l'extraction par l'instruction
Selection.AutoFilter Field:=1, Criteria1:="#N/A"

Mais c'ets un avis rapide sans avoir testé.

A+

Paul V

"DarthMac" a écrit dans le message de
news:
merci RGI de répondre, mais hélas en fait non, car sinon je l'aurais mis
de
moi-même. Le fait est que justement je créais cette macro aujourd'hui (qui
me
servira ensuite souvent je pense) poru filtrer sur des tableaux ou ce que
je
cherche c'est les #N/A sur une colonne donnée car cela me permet de
sélectionner les entrées différentes suite à une mise à joru de données.

Alors je sais que je pourrais aussi changer la formule pour que ce ne soit
pas un N/A qui s'affiche et que du coup, la macro fonctionne, mais je suis
têtu et je veux savoir s'il est possible de filtrer sur #N/A par macro
VBA...

en fait ;-)

Mac-Estion


voir

on error resume next

espérant que ce soit ça qui soit recherché

RGI

oui, certes, ça ma macro me le dit aussi... mais que faire pour que
cela
n'arrive pas ?

thanks,

mac



bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI



Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis dans
une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macro
VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une
rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur
cette
(non-)valeur, de même qu'on peut enregistrer une macro le faisant...
qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente de
prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac













Avatar
Michel Gaboly
Bonsoir,

Voici 2 exemples de code qui devraient te permettre d'adapter ta procé dure :

Sub Toto()
Dim filter_val$
Select Case IsError(ActiveCell)
Case vbYes
filter_val = "N/A"
Case Else
filter_val = ActiveCell
End Select
MsgBox filter_val
End Sub

Sub TotoBis()
Dim filter_val$
filter_val = IIf(IsError(ActiveCell), "N/A", ActiveCell)
MsgBox filter_val
End Sub


merci RGI de répondre, mais hélas en fait non, car sinon je l 'aurais mis de
moi-même. Le fait est que justement je créais cette macro auj ourd'hui (qui me
servira ensuite souvent je pense) poru filtrer sur des tableaux ou ce q ue je
cherche c'est les #N/A sur une colonne donnée car cela me permet d e
sélectionner les entrées différentes suite à une mi se à joru de données.

Alors je sais que je pourrais aussi changer la formule pour que ce ne s oit
pas un N/A qui s'affiche et que du coup, la macro fonctionne, mais je s uis
têtu et je veux savoir s'il est possible de filtrer sur #N/A par m acro VBA...

en fait ;-)

Mac-Estion


voir

on error resume next

espérant que ce soit ça qui soit recherché

RGI

oui, certes, ça ma macro me le dit aussi... mais que faire pour que cela
n'arrive pas ?

thanks,

mac



bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI



Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je su is dans une
cellule X de la colonne Y, je puisse d'un raccourci clavier (+ macr o VBA)
filtrer directement la colonne Y sur [égal] = X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter _val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'u ne rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer sur cette
(non-)valeur, de même qu'on peut enregistrer une macro le fais ant... qui ne
marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variab le tente de prendre
la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac









--
Cordialement,

Michel Gaboly
www.gaboly.com





Avatar
RGI
ce n'est pas moi qui est posé la question

mais Merci tout de même

RGI

Bonsoir,

Voici 2 exemples de code qui devraient te permettre d'adapter ta
procédure :

Sub Toto()
Dim filter_val$
Select Case IsError(ActiveCell)
Case vbYes
filter_val = "N/A"
Case Else
filter_val = ActiveCell
End Select
MsgBox filter_val
End Sub

Sub TotoBis()
Dim filter_val$
filter_val = IIf(IsError(ActiveCell), "N/A", ActiveCell)
MsgBox filter_val
End Sub


merci RGI de répondre, mais hélas en fait non, car sinon je l'aurais
mis de moi-même. Le fait est que justement je créais cette macro
aujourd'hui (qui me servira ensuite souvent je pense) poru filtrer
sur des tableaux ou ce que je cherche c'est les #N/A sur une colonne
donnée car cela me permet de sélectionner les entrées différentes
suite à une mise à joru de données.

Alors je sais que je pourrais aussi changer la formule pour que ce ne
soit pas un N/A qui s'affiche et que du coup, la macro fonctionne,
mais je suis têtu et je veux savoir s'il est possible de filtrer sur
#N/A par macro VBA...

en fait ;-)

Mac-Estion


voir

on error resume next

espérant que ce soit ça qui soit recherché

RGI

oui, certes, ça ma macro me le dit aussi... mais que faire pour que
cela n'arrive pas ?

thanks,

mac



bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI



Hello les eSperrts, à moi de poser une question, non mais ;-)

alors voilà, je voulais faire une macro pour que lorsque je suis
dans une cellule X de la colonne Y, je puisse d'un raccourci
clavier (+ macro VBA) filtrer directement la colonne Y sur [égal]
= X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filter_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d'une
rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sûr filtrer
sur cette (non-)valeur, de même qu'on peut enregistrer une macro
le faisant... qui ne marche pas après sur cette même valeur.

En fait, bien sûr, tout commence à foirer quand la variable tente
de prendre la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordre du
flash-éclair ;-)

Mac















Avatar
Michel Gaboly
C'est bien pourquoi c'est à DarthMac que j'ai répondu ;-)))

ce n'est pas moi qui est posé la question

mais Merci tout de même

RGI

Bonsoir,

Voici 2 exemples de code qui devraient te permettre d'adapter ta
procédure :

Sub Toto()
Dim filter_val$
Select Case IsError(ActiveCell)
Case vbYes
filter_val = "N/A"
Case Else
filter_val = ActiveCell
End Select
MsgBox filter_val
End Sub

Sub TotoBis()
Dim filter_val$
filter_val = IIf(IsError(ActiveCell), "N/A", ActiveCell)
MsgBox filter_val
End Sub


merci RGI de répondre, mais hélas en fait non, car sinon je l'aurais
mis de moi-même. Le fait est que justement je créais cette macro
aujourd'hui (qui me servira ensuite souvent je pense) poru filtrer
sur des tableaux ou ce que je cherche c'est les #N/A sur une colonne
donnée car cela me permet de sélectionner les entrées différentes
suite à une mise à joru de données.

Alors je sais que je pourrais aussi changer la formule pour que ce ne
soit pas un N/A qui s'affiche et que du coup, la macro fonctionne,
mais je suis têtu et je veux savoir s'il est possible de filtrer sur
#N/A par macro VBA...

en fait ;-)

Mac-Estion


voir

on error resume next

espérant que ce soit ça qui soit recherché

RGI

oui, certes, ça ma macro me le dit aussi... mais que faire pou r que
cela n'arrive pas ?

thanks,

mac



bonjour
signification du n° de l'erreur
Sub signif_erreur()
MsgBox Error(2042)
End Sub
salutations

RGI



Hello les eSperrts, à moi de poser une question, non mais ;- )

alors voilà, je voulais faire une macro pour que lorsque je suis
dans une cellule X de la colonne Y, je puisse d'un raccourci
clavier (+ macro VBA) filtrer directement la colonne Y sur [é gal]
= X.value

Le code suivant fonctionne très bien :

Sub Filtrer_sur()

Dim this_col, filter_val
this_col = ActiveCell.Column
filter_val = ActiveCell.Value
If ActiveSheet.AutoFilter.Filters(this_col).On Then
Selection.AutoFilter Field:=this_col
Else
Selection.AutoFilter Field:=this_col, Criteria1:=filt er_val
End If

End Sub

...sauf bien sûr lorsque ma cellule affiche (résultat d 'une
rechercheV) #N/A.
Pourtant lorsque l'on filtre à la main, on peut bien sû r filtrer
sur cette (non-)valeur, de même qu'on peut enregistrer une m acro
le faisant... qui ne marche pas après sur cette même va leur.

En fait, bien sûr, tout commence à foirer quand la vari able tente
de prendre la valeur de la cellule :
debug.Print filter_val
Erreur 2042

Une idée pour éviter cela ?

Merci d'avance de la réponse qui sera comme d'hab. de l'ordr e du
flash-éclair ;-)

Mac












--
Cordialement,

Michel Gaboly
www.gaboly.com







Avatar
DarthMac
messieurs,

bon sang, mais c'est bien sûr! Je me sens stupide de n'y avoir pensé. Merci
à vous deux de cette prompte solution. Je teste plus tard mais là c'est
diner time pour mes ptits n'enfants ;-)

++ mac


"Michel Gaboly" a écrit
Voici 2 exemples de code qui devraient te permettre d'adapter ta procédure
:



"Paul V" a écrit
Selection.AutoFilter Field:=1, Criteria1:="#N/A"


Avatar
Michel Gaboly
De rien, commissaire,;))


messieurs,

bon sang, mais c'est bien sûr! Je me sens stupide de n'y avoir pensé . Merci
à vous deux de cette prompte solution. Je teste plus tard mais là c 'est
diner time pour mes ptits n'enfants ;-)

++ mac


"Michel Gaboly" a écrit
Voici 2 exemples de code qui devraient te permettre d'adapter ta procé dure
:



"Paul V" a écrit
Selection.AutoFilter Field:=1, Criteria1:="#N/A"






--
Cordialement,

Michel Gaboly
www.gaboly.com


1 2 3