Vlookup en code

Résolu
unglued Messages postés 24 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 28 mars 2008 - 14 janv. 2008 à 16:37
unglued Messages postés 24 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 28 mars 2008 - 15 janv. 2008 à 08:55
Bonjour,

j'ai un petit probleme avec la fonction Vlookup, en fait jai enregistrer une maccro et jai vu comment fonctionnais Vlookup sous VB mais jai toujours un petit souci.

deja 1erement la maccro a ete enregistrer en formulaR1C1 :
je sais pas si l'erreur peut venir de la mais ce format me convient...

ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-12]C[7],R[-10]C[-10]:R[16]C[-9],2,FALSE)"
est la maccro que jai enregistrer.

maintenant je veux la faire evoluer en la mettant dans un boucle (jusque la pas de souci) et mettant une variable dans les crochets [...]
et c'est la que ca merde, je ne sais pas comment faire, rien n'est indiquer dans l'aide sur la facon de s'y prendre avec une variable.

donc je me posais la question : est il possible de faire un Vlookup en mode FormulaR1C1 avec une variable qui fait varier les zones de recherche.

voici mon code :

Dim ligne1, ligne2 As Integer

i = 1
    Do While longueur >= i
   
        Range("X" & i).Select
        ligne1 = 3 - i
        ligne2 = 29 - i

        ActiveCell.FormulaR1C1 = "=VLOOKUP(R[0]C[-1],R[ligne1]C[-18]:R[ligne2]C[-17],2,FALSE)"       ' Ligne1 = -i + 3 --- ligne2=29-i

        i = i + 1
    Loop

J'ai essayer aussi directement de mettre 3-i et 29-i dans les crochet mais ca marche pas,

Dites moi svp si c'est juste une erreur de ma part, ou s'il n'est simplement pas possible de l'ecrire de cette facon

Merci a vous

3 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
14 janv. 2008 à 17:10
Tu peux pas l'ecrire comme ca !

tu doits l'ecrire comme suit :

ActiveCell.FormulaR1C1 = "=VLOOKUP(R[0]C[-1],R[" & ligne1 & "]C[-18]:R & ligne2 & "]C[-17],2,FALSE)"

& pour concatener

A+
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
14 janv. 2008 à 22:54
Sinon, tu peux utiliser la même formule que tu utiliserais dans la barre de formule, mais en utilisant FormulaLocal et en faisant la même chose que BigFish explique avec les variables, les & et les guillemets
ex:   ...FormulaLocal = "=RECHERCHEV(A2; A:B, 2; FAUX)"

Et si tu veux que la formule soit portable sur un système multilingue, tu utlises Formula , tu changes les mots-clés pour ceux en anglais et tu mets des virgules au lieu des points-virgules
ex:   ...Formula = "=VLOOKUP(A2, A:B, 2, FALSE)"

Et quand tu ne sais pas traduire une formule française en anglais, tu te positionnes la cellule qui contient la formule en français et tu mets ceci dans une macro
MsgBox ActiveCell.Formula

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
unglued Messages postés 24 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 28 mars 2008
15 janv. 2008 à 08:55
Super,

Merci big fish,

REPONSE ACCEPTEE :D
0
Rejoignez-nous