[VBA Excel] Recherche spécial dans une chaine de caractère ?

Recherche spécial dans une chaine de caractère ? [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 09-01-2004 à 19:44:03    

j'ai une chaine comme ça par exemple :
 
toto = "client (ville)"
 
et je voudrais pouvoir récupérer "client" dans une variable et "ville" dans une autre
 
comment est-ce que je peux faire ?


Message édité par bab le 09-01-2004 à 19:44:26
Reply

Marsh Posté le 09-01-2004 à 19:44:03   

Reply

Marsh Posté le 09-01-2004 à 21:14:45    

En BASIC (doit aussi y avoir en VBA, j'espère), y a Instr() qui retourne la position d'un caractère dans une chaîne (le " " ici). On peut ensuite utiliser Left$() qui retourne la partie gauche d'une chaîne, on précise la longueur grâce à l'instruction précédente. On a donc "client".
Pour (ville), faut utiliser right$() avec la bonne longueur (longueur totale - position de l'espace - 1 pr passer l'espace).
Pour isoler le "ville" de "(ville)", la fonction mid$() devrait être utile : on prend du second à l'avant-dernier caractère (len(Chaine$) donne la longueur d'une chaîne).
 
En condensé, ça donnerait
ChneXCEL$ = "Client (ville)"
 
iE% = INSTR(ChneXCEL$, " " )
' si iE% non nul
Chaine1$ = LEFT$(ChneXCEL$, iE% - 1) ' tout avant espace
ChneTmp$ = RIGHT$(ChneXCEL$, LEN(ChneXCEL$) - iE%) ' chaîne "(ville)"
Chaine2$ = MID$(ChneTmp$, 2, LEN(ChneTmp$) - 2) ' on jette les "("
 
Si on n'a pas besoin d'analyser la présence des "(" " )", on peut adapter la dernière ligne pour éviter la précedente
 
ChneXCEL$ = "Client (ville)"
 
iE% = INSTR(ChneXCEL$, " " )
Chaine1$ = LEFT$(ChneXCEL$, iE% - 1)
Chaine2$ = MID$(ChneXCEL$, , )  .....


Message édité par Carbon_14 le 09-01-2004 à 21:29:31
Reply

Marsh Posté le 09-01-2004 à 21:20:17    

ok, je te remercie je vais regarder ça

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed