Instruction If...Then...Else

Définit un ou plusieurs blocs d'instructions ne devant s'exécuter que si une condition donnée est remplie (True).

Syntaxe :

If condition=true Then Statement block [ElseIf condition=true Then] Statement block [Else] Statement block EndIf

À la place de Else If, vous pouvez écrire ElseIf ; à la place de End If, vous pouvez écrire EndIf.

Paramètres :

L'instruction If...Then exécute des blocs de programme en fonction de conditions données. Lorsque LibreOffice Basic rencontre une instruction If, la condition est évaluée. Si la condition est remplie (True), toutes les instructions suivantes jusqu'à la prochaine instruction Else ou ElseIf sont exécutées. Si la condition n'est pas remplie (False) et si elle est suivie d'une instruction ElseIf, LibreOffice Basic évalue la condition suivante et, si elle est remplie (True), exécute les instructions suivantes. Si la condition n'est pas remplie, le programme s'exécute conformément à la prochaine instruction ElseIf ou Else. Les instructions suivant Else ne sont exécutées que si aucune des conditions précédemment évaluées n'est remplie. Après avoir évalué toutes les conditions et exécuté les instructions correspondantes, le programme continue de s'exécuter suivant l'instruction figurant après EndIf.

Vous pouvez imbriquer plusieurs instructions If...Then.

Les instructions Else et ElseIf sont facultatives.

Icône Avertissement

Vous pouvez utiliser GoTo et GoSub pour quitter un bloc If...Then, mais non pour entrer dans une nouvelle structure If...Then.


L'exemple suivant permet de saisir la date d'expiration d'un produit et de déterminer si cette date est dépassée.

Exemple :

Sub ExampleIfThenDate

Dim sDate As String

Dim sToday As String

    sDate = InputBox("Saisissez la date d'expiration (JJ.MM.AAAA).")

    sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)

    sToday = Date$

    sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)

    If sDate < sToday Then

        MsgBox "La date d'expiration est dépassée."

    ElseIf sDate > sToday Then

        MsgBox "La date d'expiration n'est pas encore dépassée."

    Else

        MsgBox "La date d'expiration est aujourd'hui."

    End If

End Sub