Les tests

Accueil

If.. Then.. Else .. End if
Select Case
Iif()

If.. Then.. Else

L'instruction If.. Then.. Else teste si une condition est vraie ou fausse. La syntaxe est la suivante :

If condition Then
  bloc d'instructions 1
Else
  bloc d'instructions 2
End If
  • Si la condition est vraie, la ou les instructions après Then sont exécutées.
  • En revanche, si la condition est fausse, ce sont les instructions après Else qui sont exécutées.

Ci dessous, nous testons si l'âge est supérieur ou égal à 18 :

Sub essai()
  Dim age
  age = InputBox("Votre âge ")
  If age >= 18 Then
     MsgBox "Majeur"
  Else
     MsgBox "Mineur"
  End If 
End Sub

Conditions multiples: Le test de conditions multiples se fait avec les opérateurs suivants:

AND: ET
OR: OU
NOT: NON
XOR: OU exclusif

Sub essai2()
  Dim n
  n = InputBox("Entrez un nombre ")
  If n >= 10 And n <= 20 Then
     MsgBox "Nombre compris entre 10 et 20"
  End If
End Sub

Sur cet exemple, nous colorions le service choisi:

Coloriage.xls

Sub coloriageService()
   service = InputBox("Quel service")
   Range("A2:D2").Select
   Do While ActiveCell <> ""
     If ActiveCell.Offset(0, 1) = service Then
       Selection.Interior.ColorIndex = 36
     Else
       Selection.Interior.ColorIndex = xlNone
     End If
     Selection.Offset(2, 0).Select ' Curseur en dessous
Loop
End Sub

Select Case

L'instruction Select Case teste la valeur d'une variable ou d'une expression et exécute la suite d'instructions associée à la valeur. la syntaxe est la suivante :

Select Case expression
  Case valeur1 To valeur2,...
     instructions
  Case valeur3 To valeur4,...
     instructions
Case opérateur <,=,> valeur
     instructions
Case Else
    instructions
End Select

Sub essai3()
  Dim age
  age = InputBox("Votre âge?")
  Select Case age
     Case 0 To 10
        MsgBox "0 à 10"
     Case 11 To 20
        MsgBox "11 à 20"
     Case 21 To 30
        MsgBox "21 à 30"
     Case Is > 30
        MsgBox "Sup à 30"
     Case Else
        MsgBox "Cas non traité"
     End Select
End Sub

Remarque:
Un seul Case est exécuté. Dès qu'une condition est vérifiée, le bloc d'instructions associé est exécuté puis l'exécution du programme se poursuit après End Select.

Sur l'exemple ci dessous on colorie les cellules du champ sélectionné.

SelectCase.xls

Sub colorie()
  For Each c In Selection
  Select Case UCase(c)
    Case "C"
       couleur = Range("G1").Interior.ColorIndex
    Case "T"
       couleur = Range("I1").Interior.ColorIndex
    Case "A"
     couleur = Range("K1").Interior.ColorIndex
    Case "M"
       couleur = Range("M1").Interior.ColorIndex
    Case Else
       couleur = xlNone
  End Select
  c.Interior.ColorIndex = couleur
  Next c
End Sub

Fonction Iif(condition,si_vrai,si_faux)

Cette fonction retourne :

  • Si_vrai si la condition est vraie
  • Si_faux si la condition est fausse

Sub Essai()
  Dim age
  age = InputBox("Votre age")
  MsgBox Iif(age < 18, "Mineur", "Majeur")
End Sub

 

 

 

 

 

 

 

 

 

Exemples

Coloriage.xls
SelectCase.xls