VBA IF Et/ou Priorité
En VBA, lorsque vous utilisez plusieurs opérateurs (par exemple AND, OR) dans une seule expression, l'ordre d'évaluation est régi par la priorité de l'opérateur. Les règles sont les suivantes:
- Les opérateurs mathématiques (p. ex., +, -, *, /, ^): évalué de gauche à droite
- Opérateurs de comparaison (p. ex., =, <, >, <=, >=, <>): évalué de gauche à droite
- Les opérateurs logiques (p. ex., AND, OR, NOT): évalué de gauche à droite
Pour éviter toute ambiguïté, vous pouvez utiliser des parenthèses pour regrouper les expressions et remplacer la priorité par défaut.
Exemple: Utilisation AND et OR
Supposons que vous ayez le code suivant:
If (origNum = "006260006" Or origNum = "30062600006") And creditOrDebit = "D" Then
' do something
End If
Sans parenthèses, l'ordre d'évaluation pourrait ne pas être ce que vous avez l'intention. Pour assurer une évaluation correcte, vous pouvez ajouter des parenthèses:
If ((origNum = "006260006" Or origNum = "30062600006") And creditOrDebit = "D") Then
' do something
End If
Dans cet exemple, le OR l'opération est évaluée d'abord, puis le résultat est combiné avec le AND opération.
Priorité des Conditions
En VBA, lorsque plusieurs conditions sont combinées en utilisant AND ou OR, la priorité est la suivante:
- AND a une priorité plus élevée que OR. Cela signifie que si plusieurs conditions sont liées à AND, toutes les conditions doivent être vraies pour que l'expression globale soit vraie.
- OR a priorité inférieure à AND. Cela signifie que si plusieurs conditions sont liées à OR, l'expression sera vraie dès que l'une des conditions est vraie.
Gardez à l'esprit que ces priorités ne s'appliquent que lors de l'utilisation AND et OR combiner les conditions. Si vous utilisez d'autres opérateurs logiques (comme NOT), les priorités peuvent différer.