Les structures de décisions permettent de tester des conditions spécifiques avant d’exécuter des instructions. On les appelle aussi alternatives ou branchements conditionnels.
Il existe deux types d'alternatives :
If <condition> Then <instruction> Else [<instructions>] End If
Exemple : tester la valeur d'une cellule et définir une remise de 0% si le montant est ⇐ 500 € sinon la remise est de 2% :
Public Function remise(cellule)
If cellule <= 500 Then
remise = 0
Else
remise = 0.02
End If
End Function
On peut bien sûr imbriquez plusieurs alternatives If … Then … Else
Exemple : tester la valeur d'une cellule et définir une remise de 0% si le montant est ⇐ 500 €, une remise de 2% sinon si le montant HT est < 1000 sinon la remise est de 4% :
Public Function remise(cellule)
If cellule <= 500 Then
remise = 0
Else
If cellule < 1000 Then
remise = 0.02
Else
remise = 0.04
End If
End If
End Function
La structure Select … Case remplace avantageusement plusieurs If imbriqués quand on doit tester différentes valeurs d'une même donnée ou d'une cellule.
Select Case <ExpressionTestée>
Case <ListeExpression>
<instructions>
Case <ListeExpression>
<instructions>
...
...
Case Else
<instructions>
End Select
<listeExpression> peut prendre l’une des formes suivantes :
En reprenant l'exemple précédant : tester la valeur d'une cellule et définir une remise de 0% si le montant est ⇐ 500 €, une remise de 2% sinon si le montant HT est < 1000 sinon la remise est de 4% :
Public Function remise3(cellule)
Select Case cellule
Case Is <= 500
remise3 = 0
Case Is < 1000
remise3 = 0.02
Case Else
remise3 = 0.04
End Select
End Function