Recherche

excellentt

XLDnaute Nouveau
Bonjour,

J'ai 2 onglets

L'un avec une liste de 800 valeurs et leurs cours.

ex

Libellé Délai Dernier Var. Ouv. + haut + bas Var/1janv Vol.
ACCOR 29.280(c) 2.88% 28.400(c) 29.950(c) 28.030(c) -16.60% 1 552 905
AEROPORTS DE PARIS 42.730(c) 0.07% 42.500(c) 43.250(c) 41.905(c) -11.70% 114 747
AIR FRANCE - KLM 7.845(c) 5.02% 7.450(c) 8.070(c) 7.211(c) -14.45% 4 243 546
AIR LIQUIDE 64.340(c) -0.09% 63.720(c) 65.845(c) 63.515(c) -1.70% 1 144 199
ALCATEL-LUCENT 1.569(c) 3.22% 1.520(c) 1.595(c) 1.497(c) 2.35% 23 973 620

et l'autre avec une liste de valeur

je veux extraire dans un onglet portefeuille, la valeure du dernier cours ( colone dernier ) correspondant a la meme valeur dans l' onglet portefeuille.

j'ai essayé cette formule qui semble bonne mais me retourne des valeurs farfelues..

RECHERCHE(TEXTE(B10;1);Cours_SRD!A:A;Cours_SRD!C:C)

alors je ne pige pas vraiment. cette fonction tiens t'elle compte des espaces ? est elle limitée a un certain nombre de valeures ?

est il mieux de faire une macro ?

Merci
 

Brigitte

XLDnaute Barbatruc
Re : Recherche

Bonjour,

Recherchev (bien construit et avec la plage de recherche au bon endroit) ou index/equiv doivent pouvoir faire cela...

Le bémol étant si on recherche une valeur qui n'existe pas dans la plage de recherche, il faut donc mettre faux ou vrai comme dernier argument selon le souhait.

Pourrais tu nous donner un petit fichier ? Car là on a du mal à distinguer tes colonnes... ET si tout est dans la même cellule, en effet une formule aura du mal.

Merci à toi.
 

excellentt

XLDnaute Nouveau
Re : Recherche

OK c bon merci j'ai trouvé !!

(RECHERCHEV(TEXTE(B10;1);Cours_SRD!$A$1:$C$922;3;FAUX)

le bemol en effet c'est que la liste dans l'onglet est variable en nombre de ligne. J'applique donc cette formule a la colone entiere et quand il n'y a pas de noms a chercher elle renvoie N/A. c pas tres joli mais ca marche.
 

excellentt

XLDnaute Nouveau
Re : Recherche

en fait c pas joli du tout !!

j'ai une macro qui viens ajouter des lignes dans cet onglet. la formule n'est pas recopiée automatiquement.

exemple

MANITOU BF 82 CPT 05/04/09 6.11 500 5.860
SPERIAN PROTECTION (ex BACOU) 55 CPT 05/04/09 27.52 1500 26.68
BENETEAU 219 CPT 05/04/09 6.850 1500 6.850
VALEO 110 CPT 05/04/09 13.68 1500 13.42
RHODIA 141 CPT 05/04/09 3.541 500 3.360
CIMENTS FRANCAIS 23 CPT 05/04/09 65.64 1500 65.64
EULER HERMES 47 CPT 05/04/09 31.96 1500 31.50
RENAULT 70 CPT 05/04/09 21.40 1500 21.33
#N/A
#N/A
#N/A
#N/A
Le cours est bien recherché dans un autre onglet.
Cependant quand ma macro ajoute une ligne, elle insere une ligne en haut et la formule n'est pas recopiée dans la colone cours.

comment est ce possible ? en ajoutant quelque chose dans la macro ?

merci
 

Brigitte

XLDnaute Barbatruc
Re : Recherche

Re,

Tu peux alors agrémenter ta formule ainsi :

=si(estna(RECHERCHEV(TEXTE(B10;1);Cours_SRD!$A$1:$C$922;3;FAUX);"pas de résultat";(RECHERCHEV(TEXTE(B10;1);Cours_SRD!$A$1:$C$922;3;FAUX))

et bien sûr, à la place de "pas de résultat" tu mets ce que tu veux, un chiffre (pas de guillemets dans ce cas), un renvoi vers une cellule (A1...), un mot (entre guillemets).

Pour la question relative à la macro qui rajoute une ligne, je ne saurais te dire... Je ne pense pas que tu puisses modifier le code pour dire que s'il rajoute une ligne, il faut modifier la formule. Il faut pour que ta formule marche, qu'aucune ligne soit rajoutée en bas et en haut, mais seulement entre....
 
Dernière édition:

excellentt

XLDnaute Nouveau
Re : Recherche

ca marche pour la premiere ligne insérée, mais pour les suivantes, la formule n'est pas recopiée. Je vais faire un autre topic sur ce pb car je pense que le probleme viens de l'ecriture de la macro pour garder les propriétés des cellules lors de l'insertion.
 

JNP

XLDnaute Barbatruc
Re : Recherche

Bonjour le forum :),
Pour mettre une formule dans une cellule, utiliser .Formula mais attention, les formules doivent être en anglais
Code:
Cells(1, 1).Formula = "=SUM(A2:A4)"
de plus, les ";" doivent être remplacées par des "," et " par ""
Code:
Cells(5, 1).Formula = "=IF(A1<>0,""OK"",""Pas Glop"")"
Enfin, il est possible d'utiliser les cellules relatives avec .FormulaR1C1
Code:
Cells(5, 1).FormulaR1C1 = "=IF(R[-4]C<>0,""OK"",""Pas Glop"")"
Bon dimanche :cool:
 

Brigitte

XLDnaute Barbatruc
Dernière édition:

excellentt

XLDnaute Nouveau
Re : Recherche

Bonjour,

j'ai pas la traduc en anglais de toutes les fonctions. tu eux la traduire stp ?
REMPLACER(SI(ESTNA(RECHERCHEV(TEXTE(B8;1);Cours_SRD!$A$1:$C$922;3;FAUX));"TBD";(RECHERCHEV(TEXTE(B8;1);Cours_SRD!$A$1:$C$922;3;FAUX)));6;5;"")

merci
 

JCGL

XLDnaute Barbatruc
Re : Recherche

Bonjour à tous,

Pour compléter le propos de JNP pour poser les formules en syntaxe du "langage système" : Utilisation de .FormulaLocal

Code:
Cells(1, 1).FormulaLocal = "=SOMME(A2:A4)"
Cells(5, 1).FormulaLocal = "=SI(A1<>0;""OK"";""Pas Glop"")"
Cells(5, 1).FormulaLocal = "=SI($A$1<>0;""OK"";""Pas Glop"")"
A+ à tous
 

Statistiques des forums

Discussions
312 234
Messages
2 086 467
Membres
103 226
dernier inscrit
smail12