![](https://codky.com/wp-content/uploads/2024/11/2656-1024x576.png)
La directive `#If…Then…#Else` en VBA est utilisée pour compiler des blocs de code conditionnellement, en fonction des constantes de compilation. Cela signifie que le code est compilé uniquement si certaines conditions sont remplies, généralement pour adapter le code à différents environnements ou configurations.
Voici comment utiliser cette directive :
Syntaxe de base
#If condition Then
' Code exécuté si la condition est vraie
#ElseIf autreCondition Then
' Code exécuté si la première condition est fausse et que l'autreCondition est vraie
#Else
' Code exécuté si toutes les conditions précédentes sont fausses
#End If
Explication
- `condition`, `autreCondition` : Ce sont des expressions logiques basées sur des constantes de compilation. Habituellement, on définit ces constantes au début du module ou dans les paramètres du projet.
- `#ElseIf` et `#Else` : Ceux-ci sont optionnels et permettent de définir des blocs de code supplémentaires pour des conditions alternatives.
Exemple d’utilisation
Supposons que vous avez besoin de compiler le code différemment selon si vous êtes en mode de débogage ou de version finale :
#Const DebugMode = True
Sub TesterDirective()
#If DebugMode Then
Debug.Print "Mode Débogage : Informations détaillées."
#Else
MsgBox "Version utilisateur : Fonctionnalité standard."
#End If
End Sub
Définir des constantes de compilation
Les constantes comme `DebugMode` doivent être définies en haut de votre module à l’aide de la directive `#Const`, ou dans les propriétés du projet sous les configurations de compilation.
Points à retenir
- Les directives `#If…Then…#Else` sont évaluées au moment de la compilation, pas lors de l’exécution.
- Elles sont particulièrement utiles pour inclure ou exclure du code avant la compilation, surtout lors de la gestion de différentes configurations de build.
En utilisant cette syntaxe correctement, vous pouvez contrôler comment différentes portions de votre code VBA sont incluses ou exclues pendant la compilation.