Utilisation de IsNumeric et IsNumber en VBA
In this Article
Ce tutoriel vous apprendra à utiliser les fonctions IsNumeric et IsNumber en VBA pour vérifier si des valeurs sont des nombres.
IsNumeric est une fonction VBA intégrée, tandis que IsNumber est une fonction Excel qui peut être appelée à partir du code VBA.
Différence entre IsNumber et IsNumeric en VBA
IsNumber vérifie si une valeur est stockée sous forme de nombre. Alors que IsNumeric vérifie si une valeur peut être convertie en un nombre.
Par exemple, si vous passez une cellule vide comme paramètre, IsNumber renverra FALSE, alors que IsNumeric renverra TRUE. De même, si vous passez une cellule contenant un nombre stocké sous forme de texte, IsNumber renverra FALSE et IsNumeric VRAI.
Vous devez prêter attention à ces limitations des deux fonctions et décider dans quels cas il est préférable d’utiliser IsNumeric et quand IsNumber.
Utilisation de IsNumeric en VBA
IsNumeric est la fonction VBA qui vérifie si une valeur est numérique et renvoie un booléen VRAI ou FAUX comme résultat.
La fonction peut prendre une variable ou une valeur de cellule.
Voici un exemple en utilisant une valeur de cellule :
If IsNumeric(Feuil1.Range("A1").Value) = True Then
MsgBox "La valeur dans la cellule A1 est numérique"
Else
MsgBox "La valeur dans la cellule A1 n'est pas numérique"
End If
Dans cet exemple, nous vérifions si la valeur de la cellule A1 est numérique en utilisant la fonction IsNumeric. Cette fonction renvoie le message approprié, en fonction du résultat de la fonction.
L’exemple suivant effectue la même opération, mais avec une variable au lieu d’une valeur de cellule :
Dim n As Variant
n = Feuil1.Range("A1").Value
If IsNumeric(n) = True Then
MsgBox "La valeur dans la cellule A1 est numérique"
Else
MsgBox "La valeur dans la cellule A1 n'est pas numérique"
End If
Utilisation de IsNumber en VBA
IsNumber est une fonction Excel qui peut être utilisée en VBA. Elle a un résultat presque similaire à celui de IsNumeric. Examinons l’exemple de la fonction IsNumber :
If Application.WorksheetFunction.IsNumber(Feuil1.Range("A1").Value) = True Then
MsgBox "La valeur dans la cellule A1 est numérique"
Else
MsgBox "La valeur dans la cellule A1 n'est pas numérique"
End If
Comme vous pouvez le voir dans le code, la différence se situe au niveau de la syntaxe lors de l’appel de la fonction. Puisque IsNumber est une fonction Excel, nous devons mettre Application.WorksheetFunction avant l’appel de la fonction.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!