Fonction chr

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

3 réponses

  1. jee pee Messages postés 9439 Date d'inscription   Statut Modérateur Dernière intervention   9 977
     
    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
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      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
  2. JLM
     
    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
  3. JLM
     
    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