IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]Tests multiples (IF)


Sujet :

VB 6 et antérieur

  1. #1
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut [VB6]Tests multiples (IF)
    Bonjour,

    Y-a-t-il moyen de réduire ce test ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (var <> 0 And var <> 1 And var <> 2) Then Exit Sub
    Je n'ai mis que 3 valeurs, mais il y en aura peut-etre plus.

    Merci.

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Celà va dépendre ....
    1) n'as-tu que des valeurs positives ?
    2) ces valeurs sont-elles continues ou avec solutions de contuinité ?
    3) il y en aura combien en tout ?

  3. #3
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    En fait, j'ai simplifié parce que ce ne sont pas des nombres mais des chaines de caractères (extensions de fichier).
    Ce sont des chaines "pré-definies" que je teste en dur.

  4. #4
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Points : 173
    Points
    173
    Par défaut
    alors une solution serait de mettre toutes les possibilité dans un tableau, puis losrque tu le souhaites, de faire une recherche sur ce tableau de la variable "var"

    deux possibilité, soit tu atteind la taille du tableau, alors la variable n'y est pas, soit tu t'arrêtes avant, alors la variable y est ...

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    si tu en as beaucoup et de façon disparate : un truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim mavar as string
    mavar = "/1/2/3/9/25/TOTO/VOILA/55/78/ETC/1234/TITI/ISABELLE/.../"
    var_a_tester = "/" & str(var) & "/"
    if instr(mavar, var_a_tester) = 0 then exit sub
    Maintenant, si ce sont des chaines de caractères, :
    var_a_tester = "/" & var & "/", bien sur

  6. #6
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Ca fonctionne super bien.
    Je trouve que c'est plus propre au niveau des modifications.
    Si on veut rajouter ou supprimer des chaines, on modifie la variable et non le code!

    Merci.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Si ce sont des extensions, tu as aussi like
    Tu concatènes tes variables texte dans Resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ok = Resultat like Var1 = true
    ou var1 = "*.xls*"
    Tu peux tester avec uncode de SilkyRoad que je commence à avoir usé jusqu'à la corde...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub DirFichier()  ' => SilkyRoad modifié
    Dim Direction As String, Resultat As String
    Dim Chemin
    Chemin = "D:\xls\"
    Direction = Dir("D:\xls\*.*", 2)
        Do While Len(Direction) > 0
            If (GetAttr(Chemin & Direction) And vbNormal) = vbNormal Then
                Resultat = Resultat & Chr(13) & Direction
            End If
            Direction = Dir()
        Loop
        If Resultat = "" Then
            MsgBox "Le répertoire est vide ."
        Else
            MsgBox Resultat, , "Liste des fichiers du répertoire . "
        End If
        If Resultat Like var1 Then MsgBox "J'ai un xls"
    End Sub
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Shell : tests multiples
    Par 84mickael dans le forum Linux
    Réponses: 2
    Dernier message: 22/08/2008, 00h15
  2. Test multiple sur une variable non définie
    Par Rei Angelus dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/12/2007, 23h01
  3. Comment utilisé un test multiple ?
    Par bobie dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/08/2007, 11h08
  4. [VB6] RichTextBox : Multiples couleurs
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/07/2006, 19h36
  5. [VB6] sélection multiple de colonne dans excel grâce à VB
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/08/2004, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo