Existe-t-il une meilleure méthode que celle-ci ? (en supposant que toutes les variables seront égales à zéro)
If var1 = 0 Or var2 = 0 Or var3 = 0 Or var4 = 0 Or var5 = 0 Or var6 = 0 Then
'do something
End If
Existe-t-il une meilleure méthode que celle-ci ? (en supposant que toutes les variables seront égales à zéro)
If var1 = 0 Or var2 = 0 Or var3 = 0 Or var4 = 0 Or var5 = 0 Or var6 = 0 Then
'do something
End If
Vous pourriez écrire une fonction de court-circuitage qui s'arrête lorsqu'elle trouve une valeur correspondant aux critères :
Public Function MatchesAny(ByVal value, ParamArray values()) As Boolean
Dim i As Long
For i = LBound(values) To UBound(values)
If values(i) = value Then
MatchesAny = True
Exit Function
End If
Next
End Function
Et maintenant vous pouvez le faire :
If MatchesAny(0, var1, var2, var3, var4, var5, var6) Then
Et si vous avez besoin de vous renflouer lorsque n'importe quelle valeur n'a pas correspondent aux critères, alors vous pouvez avoir une fonction similaire avec la logique inverse :
Public Function MatchesAll(ByVal value, ParamArray values()) As Boolean
MatchesAll = True
Dim i As Long
For i = LBound(values) To UBound(values)
If values(i) <> value Then
MatchesAll = False
Exit Function
End If
Next
End Function
Utilisé comme ceci :
If MatchesAll(0, var1, var2, var3, var4, var5, var6) Then
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.