Recherche spécial dans une chaine de caractère ? [VBA Excel] - VB/VBA/VBS - Programmation
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$, , ) .....
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