Vlookup avec mise en variable de la plage.

clotaire

XLDnaute Nouveau
Bonjour,

Je procède à une recherche V (sur un autre onglet de mon classeur) dans une plage qui peut évoluer en fonction des données qui j'y mets.

Ma question est de savoir si il est possible de mettre sous forme de variable le critère "plage" de la fonction Vlookup.

une fois cela réglé, j'aurais aussi besoin de connaitre la meilleure façon de récupérer le "bornage" de mon tableau(qui peut évoluer) afin de mettre le range en variable.

set ma_plage = range(A1:Sx) avec x la derniere ligne de mon tableau.

ce qui me permettrai d'ecrire alors :
VLookup( value, Ma_plage, index_number, not_exact_match )


Merci de votre aide.
 

Etienne2323

XLDnaute Impliqué
Re : Vlookup avec mise en variable de la plage.

Salut clotaire,
voici une proposition.

J'ai mis des infos dans la plage A1 à B8 pour l'exemple. La valeur de référence en C1 et la formule en D1. À toi d'adapter à ton besoin.

VB:
Sub Test()

Dim PremiereLigne As Integer, DerniereLigne As Integer, PremiereColonne As Integer
Dim DerniereColonne As Integer, Numero_Colonne As Integer
Dim Plage As String
Dim Valeur_Recherche As Variant

Application.ScreenUpdating = False

'Set les paramètres de ta matrice de recheche
PremiereLigne = 1
DerniereLigne = Cells(65536, 1).End(xlUp).Row
PremiereColonne = 1
DerniereColonne = 2

'Détermine la valeur que tu vas vouloir rechercher
Valeur_Recherche = Cells(1, 3).Value 'Ici, il s'agit de C1. À toi de déterminer où se trouve ton critère.
Plage = Range(Cells(PremiereLigne, PremiereColonne), Cells(DerniereLigne, DerniereColonne)).Address 'Set la plage de recherche
Numero_Colonne = 2 'Détermine dans quelle colonne tu veux la réponse

'Inscrit la formule en fonction des paramètres énoncés plus haut
'Dans cet exemple, la formule s'écrira en D1. À toi de changer l'emplacement
Cells(1, 4).Formula = "=VLOOKUP(" & Valeur_Recherche & "," & Plage & "," & Numero_Colonne & ",FALSE)"

End Sub

Cordialement,

Étienne
 

Gorfael

XLDnaute Barbatruc
Re : Vlookup avec mise en variable de la plage.

Salut clotaire et le forum
Que des généralités, donc, réponses en généralités
Je procède à une recherche V
Si c'est en formule, ok. Si c'est en VBA, pourquoi utiliser des instructions de feuille de calcul, et pas des instructions VBA ? Range("A1:Sx").find()
j'aurais aussi besoin de connaitre la meilleure façon de récupérer le "bornage" de mon tableau(qui peut évoluer) afin de mettre le range en variable.
C'est comme combien de temps pour refroidir le fût du canon : ça dépend !
On ne sait rien sur l'organisation de ton tableau, sa position dans la feuille, les valeurs recherchées...
Tu peux utiliser une boucle pour rechercher la dernière ligne de chaque colonne, et prendre le numéro de ligne le plus grand. Utiliser Usedrange, ou Range("A1").SpecialCells(xlCellTypeLastCell).Row
À toi de trouver celle qui convient le mieux suivant tes données.
A+
 

Discussions similaires

Réponses
8
Affichages
216

Statistiques des forums

Discussions
312 775
Messages
2 092 023
Membres
105 152
dernier inscrit
pago