Re : [VBA Excel 2003] - probleme avec la fonction find sur des dates...
Bonjour phlaurent,
un grand merci pour ta réponse rapide!
ca fonctionne nickel! merci beaucoup!
juste par curiosité, peux-tu me dire pourquoi ma méthode avec "find" ne marche pas? en fait, je me rend compte que si je n'applique pas de format à ma variable et que je met mes cellules excel sous le format "25/12/2013"(par ex!) ça marche très bien, mais une fois que j'applique un format sur ma fonction Date, ça ne marche plus... sauf si j'encode manuellement dans le classeur excel... c'est bizarre!
...
Bonjour fabian123
Je confirme ce que pense phlaurent :
je suppose que Find tient compte de ce qui est affiché dans la cellule
Find avec xlValues ne sert qu'à une chose : faire une recherche dans ce qui est actuellement affiché (la propriété TEXT des cellules) (donc un seul format de date ou de nombre à la fois, tenant compte également de la largeur de la colonne qui peut modifier l'affichage des dates (il faut utiliser la commande ShrinkToFit pour s'assurer que les dates sont affichées correctement) comme elle peut modifier l'affichage des nombres par arrondissement)
alors que
Find avec xlFormulas sert à effectuer une recherche dans la propriété FORMULA des cellules ( en tenant compte du type de la valeur recherchée : si la valeur recherchée est de type Date, il ne trouve que les valeurs de type Date; si la valeur recherchée est de type String ou Numérique, il trouve tout sauf les valeurs de type Date.
Autre Particularité importante de Find avec xlValues dont il faut tenir compte dans la recherche d'une date : si le format de la date recherchée correspond au format Date Courte défini dans les paramètres linguistiques régionaux du Panneau de configuration de Windows, la valeur recherchée doit être de type Date pour que la recherche soit fructueuse. Si le format de la date recherchée est un autre format de date que le format Date Courte, la valeur recherchée doit être de type String pour que la recherche soit fructueuse.
Autrement dit, xlValues effectue toujours sa recherche dans le résultat tel qu'affiché et la valeur recherchée par xlValues doit être de type Date seulement pour la recherche des dates au format Date Courte.
Pour rechercher la valeur affichée (date, nombre ou texte), il faut utiliser xlValues.
Pour rechercher la vraie date ou le vrai nombre dans les cellules qui ne contiennent pas de formule, il faut utiliser xlFormulas. Si la cellule contient une formule, il faut alors utiliser une boucle type FOR...Next.
On peut utiliser xlValues pour rechercher la vraie date à la condition que toutes les dates que nous désirons trouver aient le même format de date.
Ne pas oublier d'utiliser ShrinkToFit avant une commande FIND utilisant le paramètre LookIn:=xlValues, si on veut être certain de trouver.
Cordialement
Docmarti