Bonjour à tous
Je vous explique mon problème :
J'ai des requêtes SQL enregistrées dans des cellules de mon fichier Excel.
Je veux extraire de ces requêtes les différents nom de tables, j'utilise donc la fonction find qui balaie ma requête et qui utilise une liste de table pour comparer et retourner les tables effectivement trouvées dans la requête.
J'utilise donc un .Find(What:=Worksheets("Tables").Cells(j, 2).Value, LookAt:=xlPart)
Lorsque le nom d'une table existante dans mon onglet Tables est trouvé dans la requête, le nom est conservé, celà fonctionne bien.
Le problème est que est j'ai des noms de tables qui en contiennent d'autres, exemple :
Table 1 : T_AAA_BBB_CCC
Table 2 : T_AAA_BBB
Du coup admettons que dans ma requête il y ait la table T_AAA_BBB_CCC mais pas la T_AAA_BBB, quand mon code va rechercher la chaine "T_AAA_BBB" (vu qu'elle est dans la liste des tables existantes, qui est fixe), il va quand même trouver une correspondance, et me dire a tord que T_AAA_BBB est utilisée dans la requête.
Je pensais qu'un LookAt:=xlWhole pouvait m'aider mais j'ai l'impression que non, il renvoie "trouvé" que si la cellule contenant la requête ne contient que la chaîne recherchée et rien d'autre, ce qui n'est pas le cas.
Je cherche donc un moyen pour que seule T_AAA_BBB_CCC soit retournée, en vain
Si vous avez des idées, elles sont plus que bienvenues
Merci d'avance,
Partager