Re,
Le ActiveCell est un résidu de test, avec "Base de données" comme feuille active. Désolé . Il faut le supprimer :
Set c = f.Range("A:A").Find(TextBox1, ActiveCell, xlValues, xlWhole, , , False)
f.ActiveCell n’existe pas. ActiveCell appartient nécessairement à la feuille active : c’est la cellule dans laquelle apparaîtrait les caractères saisis, si l’on utilisait le clavier.
Que A1 soit la cellule active n’a aucune importance. Find va agir dans l’ensemble des cellules concernées. La seule différence est la première cellule dans laquelle s'effectue la recherche. Je te rappelle par ailleurs que A1 n’appartient pas forcément à la zone de recherche (la première ligne de la feuille pouvant parfaitement être vide), auquel cas, A1 n’appartient pas au UsedRange.
"xlWhole" équivaut à cocher "Totalité du contenu de la cellule" (Excel 2007) ou "Cellule entière" (Excel 2004), dans les options de la fenêtre "Rechercher", quand tu le fais manuellement : si une cellule contient "ActiveCell" (au hasard ) et que tu cherches "Cell", avec "xlWhole", la cellule ne correspondra pas aux critères de recherche, tandis qu’elle correspondra à ces mêmes critères avec "xlPart".
Voilà,
Cordialement,
Partager