Comparer une variable à plusieurs valeurs

Bonjour les amis,

Auriez vous une idée de comment comparer une variable à plusieurs valeurs ?

Par exp : si ma variable est dans une liste de valeurs alors faire l'instruction suivante.

PS:

  • J'aimerais éviter les "else if .... "
  • Select Case n'est pas adapté car je veux faire qu'une instruction. il faut juste que le if déclenche ou pas l'instruction.
Merci par avance.

Bonjour,

Vous pouvez créer une boucle For ou Do.

Maintenant, il faudrait plus d'information sur le contexte (le mieux serait un fichier d'exemple... )

Cordialement

Bonjour,

J'ai 2 idées, une qui marche mais pas super, une à tester.

La première : avec des Or

La deuxíème : déclarer ta liste de valeur dans un tableau et regarder si ta valeur est dans le tableau via une recherche faite par une boucle ou une fonction, et renvoyer vrai si elle est trouvée dans le tableau, faux dans l'autre cas.

Bonjour,

Une piste avec la fonction Match :

Sub Test()

    Dim Tbl
    Dim MaVar As String

    MaVar = "Valeur5"

    Tbl = Array("Valeur1", "Valeur2", "Valeur3", "Valeur4", "Valeur5", "Valeur6", "Valeur7", "Valeur8")

    If IsError(Application.Match(MaVar, Tbl, 0)) Then
        MsgBox "La valeur ne se trouve pas dans la liste !"
    Else
        MsgBox "La valeur se trouve dans la liste !"
    End If

End Sub

Bonjour tout le monde,

Merci pour vos idées. Mais je vais retenir celle de Theze.

Merci à vous

CDLT.

Bonjour,

Une piste avec la fonction Match :

J'aurai une question.

Ma variable n'est pas exacte à la valeur que je cherche. il y a juste le début qui correspond. Je comptais utiliser "Like" mais comment je peux faire avec la fonction match ?

Merci

Re,

La fonction Match (Equiv() en Français) ne peut pas fonctionner avec seulement la partie du mot !

Je te propose une autre façon, avec la fonction Filter() qui permet le filtrage d'un tableau et retourne un tableau si trouvé et dans ce cas, il fonctionne un peu comme le ferait une boucle avec Like :

Sub Filtrer()

    Dim Tbl
    Dim TblDest
    Dim I As Integer

    Tbl = Array("Lucien", "Marcel", "Léon", "Virginie", "Didier", "Jean-Pierre", "Vivianne", "Alain")

    TblDest = Filter(Tbl, "vi", True, vbTextCompare) '<--- retourne Virginie et Vivianne
    'TblDest = Filter(Tbl, "Mi", True, vbTextCompare)'<--- ne retourne rien

    If UBound(TblDest) = -1 Then

        MsgBox "Aucune correspondance !"

    Else

        For I = 0 To UBound(TblDest): MsgBox TblDest(I): Next I

    End If

End Sub

ou si tu préfères un message :

Sub Filtrer()

    Dim Tbl
    Dim TblDest
    Dim I As Integer

    Tbl = Array("Lucien", "Marcel", "Léon", "Virginie", "Didier", "Jean-Pierre", "Vivianne", "Alain")

    TblDest = Filter(Tbl, "vi", True, vbTextCompare) '<--- retourne Virginie et Vivianne
    'TblDest = Filter(Tbl, "Mi", True, vbTextCompare)'<--- ne retourne rien

    If UBound(TblDest) = -1 Then

        MsgBox "Aucune correspondance !"

    Else

        MsgBox "Correspondance trouvée " & UBound(TblDest) + 1 & " fois !"
        'For I = 0 To UBound(TblDest): MsgBox TblDest(I): Next I

    End If

End Sub

Bonjour,

Merci bcp.

Rechercher des sujets similaires à "comparer variable valeurs"