Astuce VBA : tester un nombre entier

La fonction suivante vous permettra de vérifier si une valeur est un nombre entier (au format numérique ou texte).


Fonction isint

Commencez par copier cette fonction dans un module :

Function isInt(nombre)
    'Renvoie True si la valeur est un nombre entier ou False si ce n'est pas le cas
    'Source : https://www.excel-pratique.com/fr/astuces_vba/nombre-entier
    isInt = False
    If Not IsNumeric(nombre) Then Exit Function
    If Int(nombre) = nombre Or Int(nombre) & "" = nombre Then isInt = True
End Function

Vous pourrez ensuite l'utiliser très simplement dans vos codes VBA :

Sub exemple()

    valeurTest = 123
    
    If isInt(valeurTest) Then
        MsgBox "Nombre entier !"
    End If

End Sub

Exemples avec d'autres valeurs

Voici quelques exemples avec différentes valeurs :

Sub exemple()

    MsgBox isInt(2) 'Renvoie : True
    MsgBox isInt("3") 'Renvoie : True
    MsgBox isInt(-61) 'Renvoie : True
    MsgBox isInt("ABCD") 'Renvoie : False
    MsgBox isInt(14.76128) 'Renvoie : False
    MsgBox isInt(12 / 4) 'Renvoie : True
    MsgBox isInt(12 / 5) 'Renvoie : False
    MsgBox isInt(4.65) 'Renvoie : False
    MsgBox isInt(Int(4.65)) 'Renvoie : True

End Sub
Cette fonction est également disponible dans le pack de fonctions du site.