> '------------------------------
> Sub Test()
>
> MsgBox Evaluate("INDEX(TblOpérations[[#All],[Soldée]]" & _
> ",MATCH(LaDate&CHAR(187)&Valeur,TblOpérations[[#All]," & _
> "[Date]]&CHAR(187)&TblOpérations[[#All],[NomValeur]],0),1)")
>
> End Sub
> '------------------------------
> MichD
Salut
J'ai modifié ton fichier comme suit :
En E1 j'ai fixé la date au 04/05/2022 (LaDate).
En F1 j'ai donné toto3 (NomValeur).
Dans les formules j'ai modifié la fin de "...[NomValeur]],0),1)" en
"...[NomValeur]],1),1)" pour que Match trouve la valeur inférieure si
nécessaire.
Dans mon tableau, les dates sont classées par ordre croissant, mais
sont non contiguës et sont parfois en double (le gros détail oublié).
J'ai modifié le tableau comme suivant :
modifié la date 02/05/2022 en 03/05/2022
supprimé la ligne de tableau commencant par 04/05/2022
Date NomValeur Soldée
30/04/2022 toto1 1
01/05/2022 toto2 2
03/05/2022 toto3 3
03/05/2022 toto4 4
05/05/2022 toto6 6
06/05/2022 toto7 7
07/05/2022 toto8 8
08/05/2022 toto9 9
La forumule et VBA me renvoient 4 qui est la ligne Soldée pour la
première date trouvée ... J'attendai 3, la ligne Soldée pour la date <=
04/05/2022 ET NomValeur = toto3.
Désolé pour la fausse piste
Encore merci
@+Laurent