VBA Excel Fonction de LookUp en VBA?

Résolu
Signaler
Messages postés
25
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
30 août 2007
-
Messages postés
25
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
30 août 2007
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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>
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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
Messages postés
25
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
30 août 2007

Re salut,

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

Rhoulz