VBA - Test si un nombre est pair ou impair

Novembre 2017




Nous allons écrire 4 fonctions utilisant chacune un moyen différent de déterminer la parité d'un nombre.

Avec WorksheetFunction

Utilise la fonction Excel Even
Function EstPair(Number As Long) As Boolean
    EstPair = (WorksheetFunction.Even(Number) = Number)
End Function

Comparaison binaire

A partir du dernier chiffre (i) du nombre :
Et à l'aide de la comparaison binaire :
- si i And 1 = 0 alors i est pair
- si i And 1 = 1 alors i est impair.


Function EstPair2(Number As Long) As Boolean
Dim lngTemp As Long
    lngTemp = CLng(Right(CStr(Number), 1))
    If (lngTemp And 1) = 0 Then EstPair2 = True
End Function

Division par 2

Diviser par 2 :
La différence entre la partie entière et éventuellement décimale = 0 si i est pair.
Function EstPair3(Number As Long) As Boolean
Dim sngTemp As Single
    sngTemp = Number / 2
    EstPair3 = ((Int(sngTemp) - sngTemp) = 0)
End Function

Modulo

En utilisant le Modulo
Function EstPair4(Number As Long) As Boolean
EstPair4 = (Number Mod 2 = 0)
End Function

Code d'appel

Option Explicit

Sub Main_Even_Odd()
Dim i As Long

    For i = -50 To 48 Step 7
        Debug.Print i & " : EstPair ==> " & IIf(EstPair(i), "is even", "is odd") _
         & " " & Chr(124) & " EstPair2 ==> " & IIf(EstPair2(i), "is even", "is odd") _
         & " " & Chr(124) & " EstPair3 ==> " & IIf(EstPair3(i), "is even", "is odd") _
         & " " & Chr(124) & " EstPair4 ==> " & IIf(EstPair4(i), "is even", "is odd")
    Next
End Sub

Publié par pijaku.
Ce document intitulé «  VBA - Test si un nombre est pair ou impair  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.