VBA Convertir une chaîne de texte en nombre

Vous devrez peut-être convertir les nombres stockés sous forme de texte en nombres réels dans votre code VBA. Dans ce tutoriel, nous allons passer en revue les fonctions que vous devez utiliser pour convertir une chaîne en un type de données entier, long, double, décimal ou monétaire (Cliquez ici pour en savoir plus sur la conversion de nombres en chaînes)

Convertir une chaîne en entier

Vous pouvez utiliser la fonction CInt ou CLng pour convertir une chaîne en un entier. Si la fraction est inférieure à 0,5, la fonction arrondira vers le bas, si la fraction est supérieure ou égale à 0,5, la fonction arrondira vers le haut. Le code suivant convertira une chaîne en un entier :

1 MsgBox CInt("7.55")

Le résultat est:

Le code suivant utilise la fonction CLng pour convertir une chaîne en un entier :

1 MsgBox CLng("13,5")

Le résultat est:

Noter: Vous pouvez utiliser la fonction CInt ou CLng pour convertir une chaîne en un entier ou en types de données longs (respectivement). Le type de données longues est le même qu'un type de données entier, sauf que des nombres plus grands sont autorisés. Dans le passé, la distinction était requise en raison de contraintes de mémoire. Dans la programmation moderne, il n'y a aucune raison de ne pas utiliser le type de données long puisque la mémoire n'est plus un problème. Il est donc toujours préférable d'utiliser un type de données long au lieu d'un entier.

Vous pouvez utiliser la fenêtre d'exécution pour voir comment la valeur serait traitée si elle n'était pas convertie en un entier :

1 Debug.Print "13.5" + "13.5"


Habituellement, le texte sera stocké en tant que variable et cette variable devra être convertie en un type de données numérique, comme indiqué dans le code ci-dessous :

1234567 Sous Using_Variables()Dim valueOne As StringvaleurUn = 5MsgBox CLng(valeurUn) + CLng(valeurUn)Fin du sous-marin

Convertir la chaîne en décimal

Vous pouvez utiliser la fonction CDbl ou CDec pour convertir une chaîne en nombre décimal. Le code suivant convertirait une chaîne en un type de données double :

1 MsgBox CDbl("9.1819")

Le résultat est:

Le code suivant convertirait une chaîne en un type de données décimal :

1 MsgBox CDec("13,57") + CDec("13,4")

Le résultat est:

Vous pouvez utiliser la fenêtre d'exécution pour voir comment la valeur serait traitée si elle n'était pas convertie en un type de données double ou décimal :

1 Debug.Print "13.57" + "13.4"

Le résultat est:

Noter: Le type de données décimal peut stocker des nombres plus grands que le type de données double, il est donc toujours conseillé d'utiliser le type de données décimal lorsque vous n'êtes pas sûr.

Convertir une chaîne en devise

Vous pouvez utiliser la fonction CCur pour convertir une chaîne en devise. Le code suivant convertirait une chaîne en un type de données monétaire :

1 Plage("A1").Valeur = CCur("18.5")

Le résultat est:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave