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
DarthMac
Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de news:

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








--
Cordialement,

Michel Gaboly
www.gaboly.com





Avatar
Michel Gaboly
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String est le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...


Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration d e
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de news:

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'aura is mis
de moi-même. Le fait est que justement je créais cette macro aujou rd'hui
(qui me servira ensuite souvent je pense) poru filtrer sur des tableau x 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 à j oru 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 mac ro
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 qu e 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.val ue

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:=filte r_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 filtr er 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 te nte 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
Phil85
bonsoir,

extrait de l'aide VBA
"Dans Visual Basic, le signe dollar ($) est le caractère de déclaration du
type String."

Dim filter_val$ n'est-il pas equivalent à
Dim filter_val As String ?

Phil87


"DarthMac" a écrit dans le message de news:

Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de news:

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








--
Cordialement,

Michel Gaboly
www.gaboly.com








Avatar
DarthMac
merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de news:
ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String est le
signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...


Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de news:

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











--
Cordialement,

Michel Gaboly
www.gaboly.com






Avatar
Paul V
Note quand même que c'est un reliquat du passé gardé pour compatibilité et
que MicroMou reccomande de l'oublier.
Quand tu vois cette façon d'écrire, tu sait immédiatement que t'as affaire à
un vieux de la vieille, qui a commencé avec de l'assembler à la belle époque
;-)
C'est pas "intuitivement" lisible, en fait.

A+

Paul V
"DarthMac" a écrit dans le message de news:
OocFIi%
merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de news:
ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String est
le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...


Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de
news:
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











--
Cordialement,

Michel Gaboly
www.gaboly.com









Avatar
RGI
Méchant

Vu le nbre de questions posées par ta personne, tu en as bien besoin des
vieux :-P

Salutations

RGI

Note quand même que c'est un reliquat du passé gardé pour compatibilité et
que MicroMou reccomande de l'oublier.
Quand tu vois cette façon d'écrire, tu sait immédiatement que t'as affaire à
un vieux de la vieille, qui a commencé avec de l'assembler à la belle époque
;-)
C'est pas "intuitivement" lisible, en fait.

A+

Paul V
"DarthMac" a écrit dans le message de news:
OocFIi%

merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de news:
ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String est
le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...



Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de
news:
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








--

Cordialement,

Michel Gaboly
www.gaboly.com















Avatar
Paul V
J'imagine qu'il y a erreur sur la personne car la dernière question que j'ai
posé sur ce forum, c'est : "Quand est-ce qu'on mange?" et j'ai toujours pas
eu de réponse.
BTW, je suis moi-même un vieux qui a commencé avec de l'assembler et donc je
suis bien placé pour savoir que c'est pas évident d'abandonner de vieilles
habitudes surtout lorsqu'elles ont des avantages certains. Mais on m'a si
souvent demandé ce qu'était ces signes barbares à la fin de mes variables
que j'ai fini par laissé tomber. ;-)
A+
Paul V

"RGI" a écrit dans le message de
news: ek6v%
Méchant

Vu le nbre de questions posées par ta personne, tu en as bien besoin des
vieux :-P

Salutations

RGI

Note quand même que c'est un reliquat du passé gardé pour compatibilité
et que MicroMou reccomande de l'oublier.
Quand tu vois cette façon d'écrire, tu sait immédiatement que t'as
affaire à un vieux de la vieille, qui a commencé avec de l'assembler à la
belle époque ;-)
C'est pas "intuitivement" lisible, en fait.

A+

Paul V
"DarthMac" a écrit dans le message de news:
OocFIi%

merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de
news: ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String
est le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...



Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de
news:
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








--

Cordialement,

Michel Gaboly
www.gaboly.com

















Avatar
RGI
Le vieux a toujours la fringale c'est bien connu
voilà le pourquoi du pas de réponse :-)

@++++

RGI

J'imagine qu'il y a erreur sur la personne car la dernière question que j'ai
posé sur ce forum, c'est : "Quand est-ce qu'on mange?" et j'ai toujours pas
eu de réponse.
BTW, je suis moi-même un vieux qui a commencé avec de l'assembler et donc je
suis bien placé pour savoir que c'est pas évident d'abandonner de vieilles
habitudes surtout lorsqu'elles ont des avantages certains. Mais on m'a si
souvent demandé ce qu'était ces signes barbares à la fin de mes variables
que j'ai fini par laissé tomber. ;-)
A+
Paul V

"RGI" a écrit dans le message de
news: ek6v%

Méchant

Vu le nbre de questions posées par ta personne, tu en as bien besoin des
vieux :-P

Salutations

RGI


Note quand même que c'est un reliquat du passé gardé pour compatibilité
et que MicroMou reccomande de l'oublier.
Quand tu vois cette façon d'écrire, tu sait immédiatement que t'as
affaire à un vieux de la vieille, qui a commencé avec de l'assembler à la
belle époque ;-)
C'est pas "intuitivement" lisible, en fait.

A+

Paul V
"DarthMac" a écrit dans le message de news:
OocFIi%


merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de
news: ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String
est le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...




Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac

"Michel Gaboly" a écrit dans le message de
news:
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



--






Cordialement,

Michel Gaboly
www.gaboly.com






















Avatar
Michel Gaboly
Salut Paul,

Ton diagnostic n'est pas tout à fait juste.

Je ne prétends pas être un petit jeune -;)), mais je n'ai jamais fait d'assembleur. A part une calculatrice programmable
avec laquelle je n'ai fait qu'un programme pour déterminer si un nb est premier, j'ai commencé en fait à programmer avec
la version 1 d'Excel sortie sur Mac fin 85. Il s'agissait de la premièr e mouture de l'ancien langage macro, qu'on
appelle maintenant macros XLM ou XL4.

J'ai découvert ensuite VBA avec Excel 5, avec comme première impressi on celle d'un langage affreusement verbeux et dénué
d'intérêt, et j'ai révisé mon opinion quand Excel 97 est sorti av ec l'environnement VBE.

Je n'ai donc jamais été habitué à ces symboles abscons, et en fai t c'est très récemment que j'ai pris l'habitude
d'utiliser "$" à la place de "As String", par flemme.

C'est le seul symbole de ce type que j'utilise ; je connaissais aussi "&" pour les entiers, mais je ne m'en sers pas.
Quant aux autres, je ne les connaois pas par cœur, je suis allé cherc her hier dans la doc pour répondre à DarthMac.


Note quand même que c'est un reliquat du passé gardé pour compati bilité et
que MicroMou reccomande de l'oublier.
Quand tu vois cette façon d'écrire, tu sait immédiatement que t'a s affaire à
un vieux de la vieille, qui a commencé avec de l'assembler à la bel le époque
;-)
C'est pas "intuitivement" lisible, en fait.

A+

Paul V
"DarthMac" a écrit dans le message de news:
OocFIi%
merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de news:
ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type Str ing est
le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...


Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac






--
Cordialement,

Michel Gaboly
www.gaboly.com



Avatar
DarthMac
Michel,

merci de t'être donné ce mal...

et pour être tout à fait franc, j'aurais pu connaître car personnellement je
suis un vieux, qui a touché son premier "micro"ordinateur à l'âge de 11 ans,
à la belle époque des Apple II (mes potes avaient des TRS etc.)...
seulement, j'étais resté au basic et ne suis (contrairement à mon plus vieux
frère de 4 ans) pas allé jusqu'à l'assembler. Ce n'est que plus tard (il y a
4 ou 5 ans) que j'ai recommencé à programmer en VBA d'une part et en php de
l'autre (on oublie le html, n'est-ce pas ? ;-))

Aahhhhh les souvenirs de guerre, c'est pas beau ça ? ;-D

Mac-anne


"Michel Gaboly" a écrit dans le message de news:
%
Salut Paul,

Ton diagnostic n'est pas tout à fait juste.

Je ne prétends pas être un petit jeune -;)), mais je n'ai jamais fait
d'assembleur. A part une calculatrice programmable
avec laquelle je n'ai fait qu'un programme pour déterminer si un nb est
premier, j'ai commencé en fait à programmer avec
la version 1 d'Excel sortie sur Mac fin 85. Il s'agissait de la première
mouture de l'ancien langage macro, qu'on
appelle maintenant macros XLM ou XL4.

J'ai découvert ensuite VBA avec Excel 5, avec comme première impression
celle d'un langage affreusement verbeux et dénué
d'intérêt, et j'ai révisé mon opinion quand Excel 97 est sorti avec
l'environnement VBE.

Je n'ai donc jamais été habitué à ces symboles abscons, et en fait c'est
très récemment que j'ai pris l'habitude
d'utiliser "$" à la place de "As String", par flemme.

C'est le seul symbole de ce type que j'utilise ; je connaissais aussi "&"
pour les entiers, mais je ne m'en sers pas.
Quant aux autres, je ne les connaois pas par cœur, je suis allé chercher
hier dans la doc pour répondre à DarthMac.


Note quand même que c'est un reliquat du passé gardé pour compatibilité et
que MicroMou reccomande de l'oublier.
Quand tu vois cette façon d'écrire, tu sait immédiatement que t'as affaire
à un vieux de la vieille, qui a commencé avec de l'assembler à la belle
époque ;-)
C'est pas "intuitivement" lisible, en fait.

A+

Paul V
"DarthMac" a écrit dans le message de news:
OocFIi%
merci pour cet éclaircissement ! :-D

mac

"Michel Gaboly" a écrit dans le message de
news: ehznqA%
Re,

C'est juste un raccourci pour remplacer "As String".

Extrait de l'aide de "String, type de données" :

Le caractère de déclaration de type pour les variables de type String est
le signe $.

Tu peux également utiliser

% pour Integer,
& pour Long,
# pour Double,
...


Michel (ou quelque autre expert ;-),

juste une petite question : pourquoi le $ derrière la déclaration de
filter_val ?

mac






--
Cordialement,

Michel Gaboly
www.gaboly.com



1 2 3