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

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
Liens externes
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 !