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

1 réponse

1 2 3
Avatar
Michel Gaboly
;-))

Michel,

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

et pour être tout à fait franc, j'aurais pu connaître car personn ellement 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 t ard (il y a
4 ou 5 ans) que j'ai recommencé à programmer en VBA d'une part et e n 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 fa it
d'assembleur. A part une calculatrice programmable
avec laquelle je n'ai fait qu'un programme pour déterminer si un nb e st
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 impres sion
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 f ait 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é che rcher
hier dans la doc pour répondre à DarthMac.


Note quand même que c'est un reliquat du passé gardé pour compat ibilité 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 à l a 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 d e
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 St ring 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éclaratio n de
filter_val ?

mac








--
Cordialement,

Michel Gaboly
www.gaboly.com




1 2 3