OVH Cloud OVH Cloud

Recherche dans liste

7 réponses
Avatar
JOJO
Bonjour.

existe t'il une commance rapide pour chercher dans une longue liste une
valeur et son rang afin de la modofier.
actuellement je compare deux lingue liste avec 2 boucles for ... next.
Ca marche bien , mais d'une lenteur !!!!!!


Merci.

7 réponses

Avatar
Pierre Fauconnier
Bonjour

Dim Cellule as Range
set cellule = MaPlage.Find(what;=xxx, ...)
msgbox cellule.address

Cela convient-il?


--
Pierre Fauconnier ()
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"JOJO" a écrit dans le message de
news:
Bonjour.

existe t'il une commance rapide pour chercher dans une longue liste une
valeur et son rang afin de la modofier.
actuellement je compare deux lingue liste avec 2 boucles for ... next.
Ca marche bien , mais d'une lenteur !!!!!!


Merci.


Avatar
CAP2
Salut,

je ne suis pas sûr d'avoir compris exactement, mais je tente :
Si tu veux chercher le contenu 1234 dans une liste et que le cellule qui
contient 1234 soit sélectionnée, tu cliques dans ta liste et tu exécutes
cette macro/ :

Sub Test()

Selection.CurrentRegion.Select
Selection.Find("1234").Select

End Sub

Ca convient (sinon, apporte un peu plus de précisions sur ton pb...)?

CAP2
Avatar
JOJO
"Pierre Fauconnier" wrote in
news::

Bonjour

Dim Cellule as Range
set cellule = MaPlage.Find(what;=xxx, ...)
msgbox cellule.address

Cela convient-il?

Non parce que ca ne marche VBA n'accepte pas la syntaxe ??


Avatar
Pierre Fauconnier
Heu, Erreur de ma part, remplace what;= ... par what:

--
Pierre Fauconnier ()
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"JOJO" a écrit dans le message de
news:
"Pierre Fauconnier" wrote in
news::

Bonjour

Dim Cellule as Range
set cellule = MaPlage.Find(what;=xxx, ...)
msgbox cellule.address

Cela convient-il?

Non parce que ca ne marche VBA n'accepte pas la syntaxe ??





Avatar
JOJO
"CAP2" wrote in news:#PPZY1JoEHA.3488
@TK2MSFTNGP12.phx.gbl:

J'ai deux listes avec des chiffres. l'une ( liste A )fait en général 20
à 30 lignes
l'autre ( liste B )peut faire jusqu'à 3000 lignes ou plus.

Je veux par exemple que toutes les trouver si les éléments de la liste a
se trouve aussi dans la liste B.
Si oui , reperer leur rang pour les mettre à jour ou les éliminer.

actuellement j'utilise 2 boucles

For X= 0 to 30 'liste A

Parametre_a(X)
For Y = 0 to 3000 'liste B
Parametre_b(Y)

if Parametre_a=parametre_b then Parametre_B=clear etc....:Y000

Next Y
Next X

En fait il y 3 parametres à controler ce qui alourdi encore plus
l'equation

Ca marche, mais sur cetains PC ca dure très longtemps, surtout que je
obligé de l'utiliser plusieur fois dans une meme commande.

je me demandais s'il était possible d'avoir une commande qui me dise

la 3eme valeur de la liste A se trouve en 1850eme position de la liste B

Voilà. J'espère que j'ai été plus clair.

Merci.



Salut,

je ne suis pas sûr d'avoir compris exactement, mais je tente :
Si tu veux chercher le contenu 1234 dans une liste et que le cellule
qui

contient 1234 soit sélectionnée, tu cliques dans ta liste et tu
exécutes

cette macro/ :

Sub Test()

Selection.CurrentRegion.Select
Selection.Find("1234").Select

End Sub

Ca convient (sinon, apporte un peu plus de précisions sur ton pb...)?

CAP2




Avatar
JOJO
"Pierre Fauconnier" wrote in
news::

ok ca marche, merci. mais par contre c'est un parametre variant .
c'est a dire que pour la valeur 33 la reponse peut etre successivement 33
133 233 etc..
on ne peut pas chercher un chiffre ?


Heu, Erreur de ma part, remplace what;= ... par what: >



Avatar
AV
Je veux par exemple que toutes les trouver si les éléments de la liste a
se trouve aussi dans la liste B.
Si oui , reperer leur rang


Avec (à adapter) la liste A en A2:A20 et la liste B en B2:B4000
En D2 et recopie --> D20 :
=EQUIV(A2;$B$2:$B$4000;0)

AV