En même temps, TypeName comme Vartype ne sont pas suffisantes (en soi) pour vérifier que, par exemple, une valeur entière n'a pas été rentrée comme un double/simple/long. Perso dans mon cas, les valeurs étaient inscrites sur une feuille Excel, et cela dépend du format de la cellule considérée !
Ainsi, je pense que le code ci-dessous permet de faire face à tous les cas, sans générer d'erreur
' Check if the value is an integer
' str is a string showing the value type
str = TypeName(##votre variable ici##)
' Values can be Integer or Empty
If str <> "Integer" And str <> "Empty" Then
' But if they are Long, Single, or Double, it can be a conversion mistake
If str = "Long" Or str = "Single" Or str = "Double" Then
If ##votre variable ici## <> Int(##votre variable ici##) Then
##code à effectuer si votre variable n'est pas un entier##
End If
Else
##code à effectuer si votre variable n'est pas un entier##
End If
End If
En espérant que ça aidera quelqu'un :-)