Bonjour,
Je mets à jour périodiquement un tableau des taux de change financier. Dans la liste, il y a des trous car les bourses ne fonctionnent pas tous les jours. Lorsque je veux convertir un taux, je recherche par match la date correspondante dans le tableau. Si la date n'existe pas, je souhaite prendre la date immédiatement inférieure. Par exemple, si la date recherchée est le 4/09/2021, la recherche doit me donner le 3/09/2021.
Ma recherche via match, qui fonctionne habituellement me sort une erreur 2042. J'ai chercher dans Excel-download une solution et j'ai trouvé la suivante :
Dim Lig%
On error resume next
Lig=Application.match([E2],[B:B],0)
if Lig=0 then exit sub
cells(Lig+16,"A").select
Je l'ai essayée et cela ne fonctionne toujours pas mais cela m'amène à plusieurs questions :
1) Pourquoi des crochets [ ] sur les arguments E2 et B:B, à quoi cela sert-il ?
2) Comme vous le voyez sur mes différents essais, j'obtiens toujours une erreur 2042 sauf pour Lig1 qui est 2 alors qu'il devrait donner 5. Pourquoi ?
3) Dans mon fichier d'origine, ci-joint, les dates de la colonne A étaient données avec minutes et secondes alors que mon argument de recherche n'en comporte pas. Cela a t-il une incidence sur la recherche ? Dans le doute, sur mon exemple, j'ai supprimé les minutes et secondes. Et cela ne fonctionne pas. J'aurai bien sur préféré ne pas avoir à le faire. Y a t-il une solution ?
ET SURTOUT comment faire pour que ma recherche fonctionne et que si l'argument n'existe pas, qu'il me donne la date immédiatement inférieure ?
Merci pour votre réponse car je boucle dessus depuis hier.
Je mets à jour périodiquement un tableau des taux de change financier. Dans la liste, il y a des trous car les bourses ne fonctionnent pas tous les jours. Lorsque je veux convertir un taux, je recherche par match la date correspondante dans le tableau. Si la date n'existe pas, je souhaite prendre la date immédiatement inférieure. Par exemple, si la date recherchée est le 4/09/2021, la recherche doit me donner le 3/09/2021.
Ma recherche via match, qui fonctionne habituellement me sort une erreur 2042. J'ai chercher dans Excel-download une solution et j'ai trouvé la suivante :
Dim Lig%
On error resume next
Lig=Application.match([E2],[B:B],0)
if Lig=0 then exit sub
cells(Lig+16,"A").select
Je l'ai essayée et cela ne fonctionne toujours pas mais cela m'amène à plusieurs questions :
1) Pourquoi des crochets [ ] sur les arguments E2 et B:B, à quoi cela sert-il ?
2) Comme vous le voyez sur mes différents essais, j'obtiens toujours une erreur 2042 sauf pour Lig1 qui est 2 alors qu'il devrait donner 5. Pourquoi ?
3) Dans mon fichier d'origine, ci-joint, les dates de la colonne A étaient données avec minutes et secondes alors que mon argument de recherche n'en comporte pas. Cela a t-il une incidence sur la recherche ? Dans le doute, sur mon exemple, j'ai supprimé les minutes et secondes. Et cela ne fonctionne pas. J'aurai bien sur préféré ne pas avoir à le faire. Y a t-il une solution ?
ET SURTOUT comment faire pour que ma recherche fonctionne et que si l'argument n'existe pas, qu'il me donne la date immédiatement inférieure ?
Merci pour votre réponse car je boucle dessus depuis hier.