VBA Excel Fonction de LookUp en VBA?

Résolu
Rhoulz Messages postés 25 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 30 août 2007 - 3 nov. 2006 à 21:34
Rhoulz Messages postés 25 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 30 août 2007 - 6 nov. 2006 à 13:31
Bonjour á tous,

J'ai une petite question concernant les fonctions de VBA en Excel:

Existe-t-il une fonction VBA pour realiser l'equivalent du lookup() de Excel?
Ou faut-il la coder soi-même (ce que j'ai fait)?

Voici mon exemple:

Sur la feuille Excel, deux colonnes:
- A1:A201 contient des dates (classées en ordres croissant).
- B1:B201 contient des valeurs monetaires.
(Rem.: Il y a des trous, des vides dans les donnee c'est a dire de A50:B55 ne contient pas de valeurs et les valeurs recommencent ensuite á la ligne 56 ...)

Je veux realiser avec un fonction VBA (que ce soit en VBA est obligatoire) un lookup dans ces deux colonnes... Comme par exemple: trouver la valeur monetaire correspondante au moi de mai 2002 (en sachant qu'elle existe).
(La formule en Excel serait +/-: =LOOKUP(<Date 31/mai/2002>,A1:A201,B1:B201))
Existe t il une formule VBA realisant l'equivalente de l'operation de LookUp()?

Pour le moment je realise cette opération á l'aide dune boucle (FOR / NEXT)  ... Ça fonctionne mais c'est long, il serait certainement plus propreet efficace si il existait une fonction toute faite...

(En parcourant l'aide d'Excel, certains livre et le forum de cs, je n'ai pas trouvé cette fonction, veuillez m'excusez si la question est evidente ou fut deja abordée...)

Merci,

Rhoulz

3 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 nov. 2006 à 21:43
Salut,

Resultat = WorksheetFunction.Lookup(Tes_Arguments)

Pour toutes fonctions d'Excel, en VBA, il faut faire précéder le nom de la fonction par le membre WorksheetFunction

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 nov. 2006 à 14:41
Sinon, tu peux utiliser la fonction Find qui trouvera la première instance d'une valeur donnée dans un Range déterminé


'recherche dans la colonne A

Set Recherche = Range("A1:A201").Find(MaDate, xlValues)

If not recherche is nothing then

    'retourne la valeur en colonne B

    Valeur = range(Recherche.Address).offset(0,1)

end if

MPi
0
Rhoulz Messages postés 25 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 30 août 2007
6 nov. 2006 à 13:31
Re salut,

Merci pour vos réponses, elles sont utiles toutes les deux

Rhoulz
0
Rejoignez-nous