Comment convertir un nombre entier en une chaîne de caractères dans Excel VBA ?

Comment convertir la valeur intégrale "45&quot ; en valeur chaîne "45&quot ; dans Excel VBA ?

Solution

CStr(45) est tout ce dont vous avez besoin (la fonction Convert String)

Commentaires (1)

Essayez la fonction CStr()

Dim myVal as String;
Dim myNum as Integer;

myVal = "My number is:"
myVal = myVal & CStr(myNum);
Commentaires (0)

La plupart du temps, vous n'aurez pas besoin de "convertir" ; VBA effectuera pour vous une conversion de type implicite sûre, _sans avoir recours à des convertisseurs comme CStr.

Le code ci-dessous fonctionne sans aucun problème, car la variable est de type String, et la conversion implicite de type est effectuée pour vous automatiquement!.

Dim myVal As String
Dim myNum As Integer

myVal = "My number is: "
myVal = myVal & myNum

Résultat :

"Mon numéro est : 0&quot ;

Vous n&#8217avez même pas besoin d&#8217en faire autant, cela fonctionne aussi :

Dim myString as String
myString = 77

"77&quot ;

La seule fois où vous aurez besoin de convertir est lorsque le type de la variable est ambigu (par exemple, Type Variant, ou Value d'une cellule (qui est Variant)).

Même dans ce cas, vous n'aurez pas besoin d'utiliser la fonction CStr si vous la combinez avec une autre variable ou constante String. Comme ceci :

Sheet1.Range("A1").Value = "My favorite number is " & 7

"Mon chiffre préféré est 7&quot ;

Donc, en réalité, le seul cas rare est celui où vous voulez vraiment stocker une valeur entière, dans une variante ou une valeur de cellule, quand non également composée avec une autre chaîne de caractères (ce qui est un cas secondaire assez rare, je pourrais ajouter) :

Dim i as Integer
i = 7
Sheet1.Range("A1").Value = i

7

Dim i as Integer
i = 7
Sheet1.Range("A1").Value = CStr(i)

"7&quot ;

Commentaires (2)