VBA - Les structures conditionnelles (If et autres tests)

Novembre 2017




Nous allons voir ici les différentes structures conditionnelles.
La syntaxe utilisée pour les tests If, Select Case, IIf...

If Then Else

Sub C_S_If()
Dim A$, B$

    A = "Hello"
    B = "World"
    'test
    If A = B Then Debug.Print A & " = " & B
    'Autre syntaxe
    If A = B Then
        Debug.Print A & " = " & B
    Else
        Debug.Print A & " and " & B & " are differents."
    End If
    'Autre syntaxe
    If A = B Then
        Debug.Print A & " = " & B
    Else: Debug.Print A & " and " & B & " are differents."
    End If
    'Autre syntaxe
    If A = B Then Debug.Print A & " = " & B Else Debug.Print A & " and " & B & " are differents."
    If A = B Then Debug.Print A & " = " & B Else: Debug.Print A & " and " & B & " are differents."
End Sub

If Then ElseIf Else

Sub C_S_ElseIf()
Dim A$, B$

    A = "Hello"
    B = "World"
    If A = B Then
        Debug.Print A & " = " & B
    ElseIf A > B Then
        Debug.Print A & " > " & B
'vous pouvez mettre plus de conditions ElseIf...
    Else
        Debug.Print A & " < " & B
    End If
End Sub

IIf

Sub C_S_Iif()
Dim A$, B$

    A = "Hello"
    'Si a = "Hello" alors B = "World" sinon B = rien
    B = IIf(A = "Hello", "World", vbNullString)
End Sub

Select Case

Sub C_S_Select_Case()
'Avec des variables String
Dim A$, C&

    A = "Hello"
    Select Case A
        Case "World"
            Debug.Print "A = World"
        Case "Hello"
            Debug.Print "A = Hello"
        Case Else
            Debug.Print "Erreur"
    End Select
'Avec des nombres
    C = 11
    Select Case C
        Case Is <= 10
            Debug.Print "C <= 10"
        Case Is < 20, Is > 10
            Debug.Print "10 < C < 20"
        Case Is >= 20
            Debug.Print "C >= 20"
    End Select
'Select Case Boolean
    'Avec des Strings
    Select Case False
        Case A <> "Hello"
            Debug.Print "A = Hello"
        Case A Like "*orl*"
            Debug.Print "A n'est pas Like *orl*"
        Case Else
            Debug.Print "Erreur"
    End Select                  'retourne : "A = Hello"
    'Autre ordre des conditions
    Select Case False
        Case A Like "*orl*"
            Debug.Print "A n'est pas Like *orl*"
        Case A <> "Hello"
            Debug.Print "A = Hello"
        Case Else
            Debug.Print "Erreur"
    End Select                  'retourne : "A n'est pas Like *orl*"
    'Avec des nombres
    Select Case True
        Case C <= 10
            Debug.Print "C <= 10"
        Case C < 20, C > 10
            Debug.Print "10 < C < 20"
        Case C >= 20
            Debug.Print "C >= 20"
    End Select
End Sub

Switch

Sub C_S_Switch()
Dim Nom

    Nom = 2
    Debug.Print Switch(Nom = 1, "Bryan", Nom = 2, "Justin", Nom = 3, "John")
    'retourne : Justin
End Sub

Publié par pijaku.
Ce document intitulé «  VBA - Les structures conditionnelles (If et autres tests)  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.