Echappement des caracteres speciaux [Resolu] - VB/VBA/VBS - Programmation
Marsh Posté le 17-08-2005 à 18:47:01
Salut guendalf,
j'ai eu un cas à peu près pareil. Ma sollution :
Code :
|
C'est fastidieux, c'est pas find qui est utilisé mais jusqu'à présent j'ai pas eu la chance de tomber sur une autre sollution.
Je suis aussi prenneuse si un mieux existe
Marsh Posté le 17-08-2005 à 20:16:58
watashi a écrit : Salut guendalf,
|
Ah! Goto!!!! Beurk!!!!!!!!!!! lol
Mais tu m'as donne une idee
Il suffit d'utiliser Find toujours, mais en verifiant si la case qu'il nous retourne contient le bon texte. Sinon on continue la recherche.
Voici un exemple qui permet de trouver la case contenant "dog*" dans la liste de mot "A1:A10"
Code :
|
P.S: J'aurai pu utiliser FindNext dans le bout de code precedent, mais j'ai remarque que le resultat etait incorrect avec FindNext si j'avais un appel de fonction entre le premier Find et le FindNext... et je n'ai pas encore compris pk ce n'etait pas possible (d'ou mon vieux hack pourri pour rechercher l'element suivant en reduisant la taille du Range). Mais je vous accorde qu'ici, n'ayant aucun appel de fonction, FindNext aurait tres bien fonctionne. (Au moins j'ai pu poser ma question sur FindNext qui me tarode depuis un ptit bout de tps maintenant...)
Bonne soiree a ceux qui ont pris le tps de tout lire
Marsh Posté le 18-08-2005 à 09:26:52
[quotemsg=1178268,3,279265]
Ah! Goto!!!! Beurk!!!!!!!!!!! lol
[quotemsg]
lollllll c'est vrai que c'est pas beau
Marsh Posté le 18-08-2005 à 11:01:44
WaTaShi> Goto ne devrait jamais etre utilise, c'est quasiment impossible de maintenir un code contenant des sauts un peu partout. On peut (quasiment) tout le temps s'en passer a moins de faire de l'asm.
bon je viens de voir que le code que j'ai mis precedemment, sans utiliser findnext est faux (il ne marche pas dans le cas ou l'on cherche un "thomas*", qu'il y a bien des "thomas" dans le texte mais pas de "thomas*" )
Donc voici quelque chose qui marche (et tant pis pour mon soucis avec findnext, qui de toute facon est hors sujet ici)
Code :
|
Marsh Posté le 18-08-2005 à 14:03:02
Pour les goto c'est vrai que c'est parfois un peu risqué mais je me suis pas encore penche sur les autres boucles que for... et encore même pas les for each.
Va falloir que je m'y mette en voyant tes codes c'est évident. Va falloir que je me penche sur la synthaxe
merci pour le conseil
Marsh Posté le 17-08-2005 à 17:50:15
Bonjour,
Je cherche commment echapper les caracteres speciaux lors d'une recherche avec la methode Find.
Pourquoi ? Car j'ai une liste de noms et certains contiennent des '*' or pour excel, il s'agit d'un caractere special qui signifie n'importe quoi.
Exemple:
la case A1 contient "thomas lar" et la case A2 contient "thomas*"
Et je cherche a recuperer la ligne ou se situe "thomas*" ...
Or avec un Range("A1:A2" ).Find(what:="thomas*" ), il va me renvoyer la cellule A1 au lieu de A2 car il va interpretrer ma demande comme etant tout ce qui commence par "thomas".
Je pensais qu'il existait une sorte de caratere d'echappement (comment sur d'autre system..), mais je n'ai pas trouve.
Donc si quelqu'un a une solution, je suis preneur
Message édité par guendalf le 18-08-2005 à 11:05:31
---------------
Guendalf