Recherchev dans macro avec plage variable

  • Initiateur de la discussion Initiateur de la discussion Boubas1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Boubas1

XLDnaute Occasionnel
bonjour,
j'ai 1 recherche v avec 1 plage source qui peut varier en nombre de lignes. Aujourd'hui, j'en ai 473 ligne mais demain je pourrai tres bien en avoir 500.
Voici mon code actuel:Range("K2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-10],'409321'!R1C1:R473C10,9,FALSE)"
Quel code peut prendre 1 nombre de lignes qui peut varier . Merci
 
Re : Recherchev dans macro avec plage variable

Bonsoir Boubas1,

Tout dépend de ce que vous voulez faire et de la configuration de la plage de recherche...

Par exemple vous pouvez utliser OFFSET (DECALER) et COUNTA (NBVAL) dans la formule :

Code:
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-10],OFFSET('409321'!R1C1:R1C10,,,COUNTA('409321'!C1)),9,FALSE)"

Cela suppose a priori qu'en colonne A il n'y ait pas de cellules vides entre les cellules non vides.

A+
 
Re : Recherchev dans macro avec plage variable

bonsoir boubas, job75,

autre possibilité : définir une variable stockant le n° de la dernière ligne du tableau dans laquelle tu effectues ta recherche et integrer cette variable dans la formule :

Code:
lig = Sheets("409321").[I65536].End(xlUp).Row
Range("K2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-10],'409321'!R1C1:R" & lig & "C10,9,FALSE)"

EDIT : bonsoir vbacrumble (boubas c'est enervant les posts multiples!!
A+
 
Re : Recherchev dans macro avec plage variable

re job75,

c'est pas ta faute, Boubas a créé deux fois la même discussion et c'est pas bien. A force de raler, les forumeurs vont finir par comprendre qu'on aime pas les posts multiples, non!!!

A+
 
Re : Recherchev dans macro avec plage variable

Bonsoir,

Voici mon code final qui marche bien:
Derlign = Range("'409321'!A65000").End(xlUp).Row
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-10],'409321'!R1C1:R[" & Derlign & "]C10,9,FALSE)". Merci à vous.

Nb: Désolé pour le double fil, je suis un peu impatient
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
855
J
  • Question Question
Microsoft 365 Formules
Réponses
2
Affichages
787
J
Réponses
7
Affichages
1 K
L
Réponses
9
Affichages
1 K
A
Réponses
2
Affichages
1 K
AntoineLTO
A
M
Réponses
4
Affichages
2 K
ManOfCatz
M
Retour