Les structures conditionnelles en VBA – Part 2.1.4

Les structures conditionnelles en VBA
Les structures conditionnelles en VBA

Les structures conditionnelles en VBA : le pouvoir de décision dans votre code !

Salut les pros du clavier ! Aujourd’hui, on va plonger dans le monde fascinant des structures conditionnelles en VBA. C’est comme si on donnait à votre code un cerveau pour prendre des décisions. Cool, non ? Alors, attachez vos ceintures, on décolle !

If…Then : le grand classique de la décision

Le If…Then, c’est le Batman des structures conditionnelles. Il est partout, il fait le boulot, et tout le monde le connaît.

Voici comment ça marche :

If condition Then
    ' Code à exécuter si la condition est vraie
End If

Mais attendez, ce n’est pas tout ! On peut aussi ajouter un « sinon » avec Else :

If condition Then
    ' Code si vrai
Else
    ' Code si faux
End If

Et pour les indécis, on a même le ElseIf :

If condition1 Then
    ' Code si condition1 est vraie
ElseIf condition2 Then
    ' Code si condition2 est vraie
Else
    ' Code si aucune condition n'est vraie
End If

Exemple pour tester :

Sub TestIfThenElse()
    Dim age As Integer
    age = CInt(InputBox("Quel âge avez-vous ?"))

    If age < 18 Then
        MsgBox "Vous êtes mineur. Pas d'alcool pour vous !"
    ElseIf age >= 18 And age < 21 Then
        MsgBox "Vous êtes majeur en France, mais pas aux USA !"
    Else
        MsgBox "Vous êtes majeur partout. Santé !"
    End If
End Sub

Select Case : le champion du choix multiple

Quand vous avez plein de conditions à vérifier, Select Case arrive comme un superhéros pour sauver la situation.

Select Case expression
    Case valeur1
        ' Code pour valeur1
    Case valeur2
        ' Code pour valeur2
    Case Else
        ' Code si aucune correspondance
End Select

Exemple pour tester :

Sub TestSelectCase()
    Dim jour As String
    jour = InputBox("Entrez un jour de la semaine")

    Select Case LCase(jour)
        Case "lundi", "mardi", "mercredi", "jeudi", "vendredi"
            MsgBox "C'est un jour de travail. Courage !"
        Case "samedi", "dimanche"
            MsgBox "C'est le weekend ! Profitez-en !"
        Case Else
            MsgBox "Euh... Vous êtes sûr que c'est un jour de la semaine ?"
    End Select
End Sub

IIf : le petit génie de la condition en une ligne

IIf, c’est comme le couteau suisse des conditions. Il fait le boulot en une seule ligne !

resultat = IIf(condition, valeur_si_vrai, valeur_si_faux)

Exemple pour tester :

Sub TestIIf()
    Dim nombre As Integer
    Dim resultat As String

    nombre = CInt(InputBox("Entrez un nombre"))
    resultat = IIf(nombre Mod 2 = 0, "pair", "impair")

    MsgBox "Le nombre " & nombre & " est " & resultat
End Sub

Les opérateurs logiques : les super-héros de la condition

N’oubliez pas nos amis les opérateurs logiques ! Ils sont là pour vous aider à créer des conditions plus complexes :

  • And : pour quand vous voulez que TOUT soit vrai
  • Or : pour quand au moins une chose doit être vraie
  • Not : pour inverser une condition

Exemple pour tester :

Sub TestOperateursLogiques()
    Dim age As Integer
    Dim estEtudiant As Boolean

    age = CInt(InputBox("Quel âge avez-vous ?"))
    estEtudiant = (MsgBox("Êtes-vous étudiant ?", vbYesNo) = vbYes)

    If age >= 18 And age <= 25 And estEtudiant Then
        MsgBox "Vous avez droit à la réduction étudiant !"
    ElseIf age < 18 Or age > 60 Then
        MsgBox "Vous avez droit à un tarif spécial !"
    Else
        MsgBox "Désolé, pas de réduction pour vous."
    End If
End Sub
Les structures conditionnelles en VBA
Les structures conditionnelles en VBA

Le grand final : un exemple qui regroupe tout !

Maintenant, mettons tout ça ensemble dans un exemple épique :

Sub GrandFinalConditionnelles()
    Dim nom As String
    Dim age As Integer
    Dim note As Double
    Dim resultat As String

    nom = InputBox("Entrez votre nom :")
    age = CInt(InputBox("Entrez votre âge :"))
    note = CDbl(InputBox("Entrez votre note sur 20 :"))

    ' Utilisation de If...Then...ElseIf
    If age < 18 Then
        MsgBox "Désolé " & nom & ", vous êtes trop jeune pour participer."
        Exit Sub
    ElseIf age > 30 Then
        MsgBox "Désolé " & nom & ", vous êtes trop âgé pour participer."
        Exit Sub
    End If

    ' Utilisation de Select Case
    Select Case note
        Case 0 To 9.99
            resultat = "Recalé"
        Case 10 To 11.99
            resultat = "Passable"
        Case 12 To 13.99
            resultat = "Assez Bien"
        Case 14 To 15.99
            resultat = "Bien"
        Case 16 To 20
            resultat = "Très Bien"
        Case Else
            MsgBox "Note invalide !"
            Exit Sub
    End Select

    ' Utilisation de IIf et opérateurs logiques
    Dim message As String
    message = nom & ", vous avez " & age & " ans et votre résultat est : " & resultat & "." & vbNewLine
    message = message & IIf(note >= 10 And age <= 25, "Vous êtes admis !", "Vous n'êtes pas admis.")

    MsgBox message
End Sub

Et voilà ! Vous êtes maintenant un maître des structures conditionnelles en VBA. Avec ces super-pouvoirs, vous allez pouvoir créer des macros qui prennent des décisions comme un pro !

N’oubliez pas, la pratique fait le maître. Alors amusez-vous, expérimentez, et surtout, n’ayez pas peur de faire des erreurs. C’est comme ça qu’on apprend !

Pour aller plus loin et devenir un vrai ninja du VBA, jetez un œil à nos articles sur les bases de VBA, les variables et les opérateurs. Vous y trouverez plein d’autres astuces pour devenir un pro du code !

Voici les liens internes et externes pour compléter l’article sur les structures conditionnelles en VBA :

Liens internes

  1. Découvrir VBA
  2. Les variables en VBA
  3. Les opérateurs en VBA

Liens externes

  1. Documentation Microsoft sur les instructions If…Then…Else
  2. Tutoriel sur les conditions en VBA

Ces liens permettront aux lecteurs d’approfondir leurs connaissances sur les structures conditionnelles en VBA et d’explorer d’autres aspects de la programmation VBA.

Allez, à vos claviers, et que la force du code soit avec vous !

Comments

No comments yet. Why don’t you start the discussion?

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *