Fonction chr

Fermé
JLM - 8 août 2020 à 14:15
 JLM - 8 août 2020 à 15:34
voilà mon problème de syntaxe :

dans la ligne :

if left(text1 1)=chr(65) or left(text1,)=chr(69) or, etc( pour une dizaine de code ascii)
comment éviter la répétition de left(text1,1) à chaque fois, ça fait un peu lourd.
merci de votre aide
A voir également:

3 réponses

jee pee Messages postés 40482 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 27 novembre 2024 9 428
8 août 2020 à 14:33
Bonjour,

Je ne fais pas de VB/VBA ;-) mais quand on cherche autour de ce sujet, en pensant à des solutions comme
if a in (1,2,5)
ou
if a=1 or 2 or 5
on trouve que ces syntaxes ne sont pas prises en compte.

Par contre on trouve une solution avec
select case a
ou un
if Instr()
qui semble plus ardu : https://stackoverflow.com/questions/32503099/how-to-check-against-a-list-of-values-in-an-if-statement

Si cela peut te donner une piste ...
1
NHenry Messages postés 15164 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 novembre 2024 345
8 août 2020 à 15:10
En VB6/VBA, tu as au moins 2 méthodes :
- Soit utiliser Instr (pour rechercher ton caractères dans une autre chaine)
- Soit mettre la valeur obtenue par ton Left(..) dans une variable tampon pour n'utiliser que cette variable dans ton IF.

Et à la place de chr pour ces codes, préfères utiliser le caractère directement : 65-> A 69 ->E, ... Ce sera plus facilement lisible sir le but est de trouver le caractère.
0
J'ai trouvé ça

Dim LT As String
 LT = Left(Text1, 1)
   
   Select Case LT
      
Case Is = Chr(65)
        M = MsgBox("résolu ?") 'essai

      Case Is = Chr(69)
        M = MsgBox("c'est bon ! ") 'essai
 
 'case is =   etc
  
End Select


Ca marche et c'est plus clair !

Merci jee pee
1
J'ai trouvé encore plus simple

  Dim LT1
  LT1 = Left(Text1, 1)
 
   Select Case LT1
      Case Is = Chr(65), Chr(69), Chr(73), Chr(79), Chr(85), Chr(140), Chr(200), Chr(201), Chr(202)
  End Select


je pense que les virgules font office de OR

j'ai raison ?

en tout cas ça marche aussi

merci tout le monde

1