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.