Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3560 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb de conditions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb de conditions

n°372005
toutoun88
Posté le 25-04-2003 à 15:32:35  profilanswer
 


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?

mood
Publicité
Posté le 25-04-2003 à 15:32:35  profilanswer
 

n°372296
cvb
Posté le 25-04-2003 à 20:18:15  profilanswer
 

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 :
  1. dim i as integer
  2. dim nb_caractere as integer 'nombre de caractère dans la chaine
  3. dim char_retour as string 'caractère retourné
  4. dim char_position
  5. nb = len("chaine de caractère" )
  6. for i = 1 to nb
  7. char_retour = mid("chaine de caractère",i,1)
  8. if char_retour = "." then
  9. char_position = i
  10. end if
  11. next i


 
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...


Message édité par cvb le 25-04-2003 à 20:18:43
n°373040
MagicBuzz
Posté le 27-04-2003 à 03:44:25  profilanswer
 

cvb a écrit :

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 :
  1. dim i as integer
  2. dim nb_caractere as integer 'nombre de caractère dans la chaine
  3. dim char_retour as string 'caractère retourné
  4. dim char_position
  5. nb = len("chaine de caractère" )
  6. for i = 1 to nb
  7. char_retour = mid("chaine de caractère",i,1)
  8. if char_retour = "." then
  9. char_position = i
  10. end if
  11. next i


 
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...


euh... t'as pas trouvé plus compliqué ? :lol:
 
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)


Message édité par MagicBuzz le 27-04-2003 à 03:46:06
n°373071
cvb
Posté le 27-04-2003 à 09:48:37  profilanswer
 

MagicBuzz a écrit :


euh... t'as pas trouvé plus compliqué ? :lol:
 
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)


 
 
moi ?  :whistle: non !  c'est une méthode lourde, mais qui marche... :D

n°373772
toutoun88
Posté le 28-04-2003 à 09:30:54  profilanswer
 

@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?

n°373782
toutoun88
Posté le 28-04-2003 à 09:35:19  profilanswer
 

@ MagicBuzz  
 
Non, c'est bon, j'ai trouvé, inStr retourne 0 si la chaine n'est pas trouvée.
 
Merci :D

n°373805
MagicBuzz
Posté le 28-04-2003 à 09:40:58  profilanswer
 

Arf, oui, c'est vrai, c'est 0, puisque ça commence à 1 :D

n°373827
toutoun88
Posté le 28-04-2003 à 09:55:44  profilanswer
 

@MagicBuzz  
 
 
Et oui, c'est pas du C! ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb de conditions

 

Sujets relatifs
[ACCESS] données d'un état visible avec conditions ?[ASP] Conditions if imbriquées???
comment faire un IF ( ){ } avec plusieurs conditions?Les conditions ! Existe , Existe pas ? TOUS ?
rediriger selon des conditions?SQL des conditions dans une vue, c possible !?
[ACCESS] Aide sur les conditions dans les macrosExcel : Comment mettre plusieurs conditions dans une formule ?
peut on faire des conditions sur la taille des fichiers avec un batch 
Plus de sujets relatifs à : pb de conditions


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)