Trouver le num de ligne par VlookUp en VBA??

néné06

XLDnaute Accro
Bonsoir le Forum,

Je recherche le moyen de trouver le numéro de ligne, dans une liste de valeur en colonne A,si, après avoir entré la valeur recherchée dans un Textbox, rechercher cette valeur(présente) dans la colonne A de ma feuille.
Donc par la fonction VlookUp, je souhaiterais qu'une variable me retourne le numéro de ligne de la colonne A, ou se trouve la valeur recherchée.
Je ne sais pas si cela est possible par VlookUp?
Cela est faisable par (For..next,Find,Match, etc..)

D'avance merci!

A+

René
 
Dernière édition:

néné06

XLDnaute Accro
Re : Trouver le num de ligne par VlookUp en VBA??

Bonsoir Rachid,

Merci pour ta réponse!

Oui, par Match, etc......, cela est possible!
Mais j'aimerais s'avoir si cela est possible par VlookUp , car je travail sur des test de rapidité avec presque toutes le méthodes et à première vu, la méthode par VlookUp ,semblerait ultra-rapide.

Encore merci!

A+

René
 

job75

XLDnaute Barbatruc
Re : Trouver le num de ligne par VlookUp en VBA??

Bonsoir néné06, hello R@chid,

En VBA Application.VLookup c'est la fonction Excel RECHERCHEV.

Elle ne fait pas la même chose que Application.Match, qui est la fonction Excel EQUIV.

Voyez sur le web l'aide Microsoft sur ces 2 fonctions.

Application.Match (EQUIV) est la fonction la plus simple, c'est la plus rapide.

A+
 

néné06

XLDnaute Accro
Re : Trouver le num de ligne par VlookUp en VBA??

Bonsoir Job75

Donc, il est impossible de rechercher un numéro de ligne par VloockUp!
Au niveau de la rapidité, sur une liste triée,j'ai le système (Dichotomique + tableau) qui me donne des résultats bien supérieur à la méthode (Match).
Je termine donc mon petit fichier que je déposerais sur le Forum, pour ceux que la recherche de valeurs dans une colonne intéresseraient.

Merci!
A+

René
 

subsub

XLDnaute Nouveau
Re : Trouver le num de ligne par VlookUp en VBA??

Je suis nouveau et débutant mais la solution la plus simple ne serait elle pas de créer un colonne dans ta 2eme page avec les numéros de ligne comme cela si tu fait un rechercheV cela te retourne la valeure qui serait équivalent à ton N° de lligne ?
je sais c'est simpliste mais ça doit fonctionner.
 

gosselien

XLDnaute Barbatruc
Re : Trouver le num de ligne par VlookUp en VBA??

Je suis nouveau et débutant mais la solution la plus simple ne serait elle pas de créer un colonne dans ta 2eme page avec les numéros de ligne comme cela si tu fait un rechercheV cela te retourne la valeure qui serait équivalent à ton N° de lligne ?
je sais c'est simpliste mais ça doit fonctionner.

et si on trie ça donnera quoi ? :D
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Trouver le num de ligne par VlookUp en VBA??

Bonjour,

Comparaison vitesses avec Array, Find ,Dico, Match Array, Match Tableur:
(Match Array est 10 fois plus lent que Match Tableur)

http://boisgontierjacques.free.fr/fichiers/Cellules/RechercheTableauDico.xls

Code:
Sub RechercheTableau()
  A = [A1:b20000]
  t = Timer()
  For j = 15000 To 16000 Step 2  ' 500 recherches= 4 sec
    x = "Nom" & Trim(Str(j))
    For i = 1 To 20000
      If A(i, 1) = x Then
        y = A(i, 2)
      End If
     Next i
   Next j
   MsgBox Timer() - t
End Sub

Sub RechercheDico()
  Set mondico = CreateObject("scripting.dictionary")
  A = [A1:b20000]
  For i = 1 To 20000
    mondico(A(i, 1)) = A(i, 2)
  Next i
  t = Timer()
  For j = 15000 To 16000 Step 2 ' 500 recherches= 0,015 sec
    x = "Nom" & Trim(Str(j))
    y = mondico(x)
   Next j
   MsgBox Timer() - t
End Sub

Sub RechercheFind()
  t = Timer()
  For j = 15000 To 16000 Step 2 ' 500 recherches= 2,65 sec
    x = "Nom" & Trim(Str(j))
    Set result = [A1:A20000].Find(what:=x)
    y = result.Offset(, 1)
   Next j
   MsgBox Timer() - t
End Sub

Sub MatchArray()
 Dim VAR_TAB
 VAR_TAB = Range("A1:A20000")
 t = Timer()
 For j = 15000 To 16000 Step 2 ' 500 recherches= 21 sec
   Val_Cherchee = "Nom" & Trim(Str(j))
   y = Application.Match(Val_Cherchee, Application.Index(VAR_TAB, 0, 1), 0)
 Next j
 MsgBox Timer() - t
End Sub

Sub MatchTableur()
 Dim VAR_TAB
 t = Timer()
 For j = 15000 To 16000 Step 2 ' 500 recherches= 2 sec
   Val_Cherchee = "Nom" & Trim(Str(j))
   y = Application.Match(Val_Cherchee, Application.Index(Range("A1:A20000"), 0, 1), 0)
 Next j
 MsgBox Timer() - t
End Sub

JB
 
Dernière édition:

néné06

XLDnaute Accro
Re : Trouver le num de ligne par VlookUp en VBA??

Bonjour à tous,

@ Subsub,

Une idée qui peut-être exploitée, le principe serait peut-être de placer un index ?

Merci!

@ Jacques,

Un tuto très intéressant, comme à l'habitude!
Je travail dessus pour bien comprendre ces codes.

Merci!


A+

René
 

néné06

XLDnaute Accro
Re : (Résolu)Trouver le num de ligne par VlookUp en VBA??

Bonsoir,
Le programme à un petit problème chez moi,
lorsque je le lance depuis le fil,l'instruction:
Range("A2:G65532").ClearContents dans Workbook.Open plante ?
Si je l'enregistre sur le bureau et que je le relance, il est OK???
Pourquoi??

Réponse donnée!

Merci!

A+

René
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
389
Réponses
7
Affichages
374

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC