pb de conditions - VB/VBA/VBS - Programmation
Marsh Posté le 25-04-2003 à 20:18:15
Comment ça ? Tu veux rechercher un point "." dans une chaine ? mettre ensuite son emplacement ? rien de plus simple...
La recette elle est pas compliqué :
- une boucles
- le code ASCII
- une condition
- une variable
Code :
|
Voilà, en trés gros ton code ! Tu vérifi, simplement la fonction "mid" à partir de l'aide de VB. C'est une fonction qui permet de connaître la position d'un caractère dans une chaine.
Ensuite, si tu as plusieurs points, tu peux faire un tableaux dynamique et l'intégrer dans la condition...
Marsh Posté le 27-04-2003 à 03:44:25
cvb a écrit : Comment ça ? Tu veux rechercher un point "." dans une chaine ? mettre ensuite son emplacement ? rien de plus simple...
|
euh... t'as pas trouvé plus compliqué ?
pour retrouver l'index d'un caractères dans une chaine, c'est :
pos = inStr(lachaine, lachaineàtrouver)
Ca retourne l'index de lachauneàtrouver, ou -1 si elle n'est pas trouvée.
D'ailleurs, c'est inStr que tu as décrit dans ton explication.
Mid, ça retourne la sous-chaine de l'ongueur y en partant de l'index x
str = Mid(lachaine, x, y)
Marsh Posté le 27-04-2003 à 09:48:37
MagicBuzz a écrit : |
moi ? non ! c'est une méthode lourde, mais qui marche...
Marsh Posté le 28-04-2003 à 09:30:54
@MagicBuzz
Merci, ça marche inStr. Mais j'ai encore un petit probleme, voila mon code:
If (InStr(formule, "." ) <> -1) Then
...
End If
Le probleme est que quelque soit la chaine, qu'il y ai un "." ou pas, le programme execute ce qu'il y a dans la boucle. Alors que normalement, si la chaine ne contient pas de point, la fonction inStr retourne -1 comme tu me la dis, et donc ne devrait pas rentrer dans la boucle.
T'es sur que inStr retourne -1 si la chaine n'est pas trouvée?
Marsh Posté le 28-04-2003 à 09:35:19
@ MagicBuzz
Non, c'est bon, j'ai trouvé, inStr retourne 0 si la chaine n'est pas trouvée.
Merci
Marsh Posté le 25-04-2003 à 15:32:35
J'ai un petit probleme de condition, voila mon script:
If (pos1 = Application.WorksheetFunction.Find(".", truc, 1)) Then
Ce que je veux c'est que si un point existe dans la chaine truc, alors il me met sa position dans pos1.
ça marche en C, mais ça veut pas marcher en VB. Comment faire?