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

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

Votre réponse

3 réponses

Meilleure réponse
mortalino
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
- 3 nov. 2006 à 21:43
3
Merci
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>

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de mortalino
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 4 nov. 2006 à 14:41
0
Merci
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
Messages postés
25
Date d'inscription
jeudi 26 août 2004
Dernière intervention
30 août 2007
- 6 nov. 2006 à 13:31
0
Merci
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.