XL 2013 CODE VBA FORMULE DE RECHERCHE

vinciHorus

XLDnaute Junior
Bonjour

j'ai le tableau suivant
meroceanlieucode
qlt2
ape3

j'aimerai faire une recherche telle que avec le code (Colonne D) je trouve la mer (Colonne A) donc de D à A


ma ligne de code
.Range("B" & i) = Application.VLookup(.Range("E" & i), Worksheets("tabrecher").Range("A : D"), 1, False) 'Formule de recherche
 
Solution
Re,
Essayez ceci :
VB:
Sub Essai2()
'.Range("B" & i) = Application.VLookup(.Range("E" & i), Worksheets("tabrecher").Range("A:D"), 1, False) 'Formule de recherche
' valeur recherchée :       .Range("E" & i)
' colonne de recherche :    Worksheets("tabrecher").Range("D:D")
' colonne d'extraction :    Worksheets("tabrecher").Range("A:A")

    For i = t To Lig
        If Cells(i, 3).Value = Empty Then End
        IndexL = Application.Match(.Range("E" & i), Worksheets("tabrecher").Range("D:D"), 0)
        Valeur = Worksheets("tabrecher").Range("A" & IndexL)
    Next i
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour VinciHorus,
Avec VLookup la valeur recherchée doit être obligatoirement à droite de la colonne où est recherché le critère.
Vous pouvez rechercher un lieu en fonction de la mer, mais pas la mer en fonction du lieu.
Donc il faut passer par Index Equiv :
VB:
Sub Essai()
    ' recherche de la ligne où se trouve le critère
    IndexL = Application.Match(3, Range(Cells(1, 4), Cells(100, 4)))
    ' extraction de la donnée sur cette même ligne
    Valeur = Cells(IndexL, 1)
End Sub
Ainsi avec recherche de 3 sur la colonne 4, on extrait "a" de la colonne 1.
 

vinciHorus

XLDnaute Junior
Bonjour VinciHorus,
Avec VLookup la valeur recherchée doit être obligatoirement à droite de la colonne où est recherché le critère.
Vous pouvez rechercher un lieu en fonction de la mer, mais pas la mer en fonction du lieu.
Donc il faut passer par Index Equiv :
VB:
Sub Essai()
    ' recherche de la ligne où se trouve le critère
    IndexL = Application.Match(3, Range(Cells(1, 4), Cells(100, 4)))
    ' extraction de la donnée sur cette même ligne
    Valeur = Cells(IndexL, 1)
End Sub
Ainsi avec recherche de 3 sur la colonne 4, on extrait "a" de la colonne 1.
merci pour la réponse
je l'adapte et je reviens vers vous
 

vinciHorus

XLDnaute Junior
Bonjour VinciHorus,
Avec VLookup la valeur recherchée doit être obligatoirement à droite de la colonne où est recherché le critère.
Vous pouvez rechercher un lieu en fonction de la mer, mais pas la mer en fonction du lieu.
Donc il faut passer par Index Equiv :
VB:
Sub Essai()
    ' recherche de la ligne où se trouve le critère
    IndexL = Application.Match(3, Range(Cells(1, 4), Cells(100, 4)))
    ' extraction de la donnée sur cette même ligne
    Valeur = Cells(IndexL, 1)
End Sub
Ainsi avec recherche de 3 sur la colonne 4, on extrait "a" de la colonne 1.
comment l'adapter ici

For i = t To Lig

If Cells(i, 3).Value = Empty Then End

.Range("B" & i) = Application.VLookup(.Range("E" & i), Worksheets("tabrecher").Range("A:D"), 1, False) 'Formule de recherche


Next i
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Essayez ceci :
VB:
Sub Essai2()
'.Range("B" & i) = Application.VLookup(.Range("E" & i), Worksheets("tabrecher").Range("A:D"), 1, False) 'Formule de recherche
' valeur recherchée :       .Range("E" & i)
' colonne de recherche :    Worksheets("tabrecher").Range("D:D")
' colonne d'extraction :    Worksheets("tabrecher").Range("A:A")

    For i = t To Lig
        If Cells(i, 3).Value = Empty Then End
        IndexL = Application.Match(.Range("E" & i), Worksheets("tabrecher").Range("D:D"), 0)
        Valeur = Worksheets("tabrecher").Range("A" & IndexL)
    Next i
End Sub
 

Discussions similaires

Réponses
7
Affichages
318

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16