VAL |
Chaine à nombre |
|---|---|
| Visual Basic | |
Syntaxe
|
Function VAL(chaine As String) As Double |
Paramètres
| Nom | Description |
|---|---|
| chaine | Ce paramètre permet d'indiquer la chaîne de caractères devant être convertie |
Description
Cette fonction transforme chaîne de caractères en sa valeur numérique.
Remarques
- La fonction VAL permet de convertir une chaîne de caractères en une valeur numérique, généralement de type Double. Elle est utile lorsqu'on traite des données textuelles saisies par l'utilisateur ou importées depuis un fichier.
- VAL lit la chaîne de gauche à droite et s'arrête dès qu'un caractère non numérique (sauf le point décimal ou le signe) est rencontré. Ainsi, VAL("123ABC") renverra 123, ce qui peut éviter certaines erreurs mais nécessite de la prudence.
- Contrairement à CInt, CDbl ou CLng, la fonction VAL est tolérante aux chaînes de caractères mal formatées, car elle ignore tout ce qui suit la première séquence numérique. Cela en fait une fonction robuste, mais moins stricte.
- Le format attendu par VAL respecte la convention anglo-saxonne du point décimal. Ainsi, VAL("3.14") fonctionne, mais VAL("3,14") retourne seulement 3, sauf si les paramètres régionaux sont adaptés.
- Il est important de vérifier la validité de la chaîne avant de l'utiliser avec VAL, surtout si elle provient d'une saisie utilisateur, pour éviter des résultats inattendus ou incohérents dans les calculs.
- VAL peut également interpréter des valeurs négatives ou scientifiques, comme " -2.5e3 ", et renverra correctement -2500, ce qui en fait un outil puissant pour traiter des données numériques complexes en format texte.
- Dans un contexte multilingue ou internationalisé, l'utilisation de VAL peut poser problème si les conventions numériques locales utilisent la virgule comme séparateur décimal. Dans ce cas, un prétraitement de la chaîne peut être nécessaire.
- La fonction VAL reste utile en Visual Basic for Applications (VBA) pour Excel ou Access, notamment pour convertir des cellules texte en nombres afin de les utiliser dans des calculs, sans devoir manipuler les types explicitement.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
- Sub Main()
- MsgBox "Val(0) = " & Val(0) & vbCrLf & _
- "Val(123) = " & Val("123") & vbCrLf & _
- "Val(-123) = " & Val("-123") & vbCrLf & _
- "Val(123E) = " & Val("123E") & vbCrLf & _
- "Val(-123E) = " & Val("-123E") & vbCrLf & _
- "Val(-123G) = " & Val("-123G") & vbCrLf & _
- "Val(G) = " & Val("G") & vbCrLf & _
- "Val(123.45) = " & Val("123.45")
- End Sub
on obtiendra le résultat suivant :
Val(0) = 0Val(123) = 123
Val(-123) = -123
Val(123E) = 123
Val(-123E) = 123
Val(-123G) = 123
Val(G) = 0
Val(123.45) = 123.45
Dernière mise à jour : Lundi, le 19 novembre 2012