Pb fonction FIND de VBA Excel

Fermé
Panov Messages postés 4 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 26 mars 2010 - 23 févr. 2010 à 17:13
yoyoton Messages postés 6 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 6 août 2010 - 23 févr. 2010 à 19:31
Bonjour,
J'utilise VBA pour faire la recherche d'une valeur dans une colonne. Le problème est que lorsque cette valeur se trouve dans la première cellule de ma colonne elle n'est pas détectée si ma donnée recherchée se retrouve en composante plus bas.

Je m'explique :
- J'ai une colonne dont les valeurs vont de 9 à 96 (colonne A10 à A97)
- avec ma fonction Find je recherche la valeur 9 dans le range A10-A97. La première occurrence trouvée par la fonction n'est pas la cellule A10 comportant ma valeur 9 mais la cellule A20 comportant ma valeur 19.
- Si je remplace tous les 9 par des x dans ma colonne à l'exception de la valeur 9 contenu dans la cellule A10, la fonction me renvoie bien la bonne cellule.
La parade que j'ai trouvé est de mettre l'option LookAt = xlWhole mais je me demandais pourquoi Excel me squizz la première cellule lors de la recherche si je mets LookAt = xlPart alors que ma valeur est bien contenue dans la première cellule.

Merci.
A voir également:

1 réponse

yoyoton Messages postés 6 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 6 août 2010 7
23 févr. 2010 à 19:31
La raison est que lorsque que tu selectionnes les cellules A10-A97, Excel a déjà selectionné ta colonne avec, en première selection, la cellule A9 qui contient la valeur recherché. En exécutant la fonction, Excel va recherche la cellule suivante qui contient le caractère '9'. Donc 19.
Avec xlWhole, Excel ne va recherche que les cellule qui contienne exactement la chaîne de caractère "9", ce qui exclut toutes les autres.

En fait, dans tous les cas, il va tester toute ta colonne en commençant pas l'occurence qui suit immédiatement la cellule selectionné et va finir par la cellule selectionnée.
0