VBA Excel Fonction de LookUp en VBA? [Résolu]

Rhoulz 25 Messages postés jeudi 26 août 2004Date d'inscription 30 août 2007 Dernière intervention - 3 nov. 2006 à 21:34 - Dernière réponse : Rhoulz 25 Messages postés jeudi 26 août 2004Date d'inscription 30 août 2007 Dernière intervention
- 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
Afficher la suite 

3 réponses

Répondre au sujet
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 3 nov. 2006 à 21:43
+3
Utile
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>
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mortalino
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 4 nov. 2006 à 14:41
0
Utile
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
Commenter la réponse de cs_MPi
Rhoulz 25 Messages postés jeudi 26 août 2004Date d'inscription 30 août 2007 Dernière intervention - 6 nov. 2006 à 13:31
0
Utile
Re salut,

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

Rhoulz
Commenter la réponse de Rhoulz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.