Comment convertir une chaîne en entier dans VBA (avec exemples)
Vous pouvez utiliser la fonction CInt dans VBA pour convertir une chaîne de texte en entier.
Voici deux manières courantes d’utiliser cette fonction en pratique :
Méthode 1 : convertir une chaîne en entier dans VBA
Sub ConvertStringToInteger() Dim i As Integer For i = 2 To 11 Range("B" & i) = CInt(Range("A" & i)) Next i End Sub
Cette macro particulière convertira chaque chaîne de la plage A2:A11 en un entier et affichera les entiers dans la plage B2:B11 .
Méthode 2 : convertir une chaîne en entier dans VBA (uniquement si la chaîne est un nombre)
Sub ConvertStringToInteger()
Dim i As Integer
For i = 2 To 11
If IsNumeric(Range("A" & i)) Then
Range("B" & i) = CInt(Range("A" & i))
Else
Range("B" & i) = 0
End If
Next i
End Sub
Cette macro particulière convertira chaque chaîne de la plage A2: A11 en entier uniquement si la chaîne est un nombre. Sinon, la chaîne sera convertie en une valeur nulle.
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Exemple 1 : convertir une chaîne en entier dans VBA
Supposons que nous ayons la colonne de valeurs suivante dans Excel, actuellement formatée sous forme de chaînes de texte :
Supposons que nous souhaitions convertir chaque chaîne en entier et afficher les entiers dans la colonne B.
Nous pouvons créer la macro suivante pour ce faire :
Sub ConvertStringToInteger() Dim i As Integer For i = 2 To 11 Range("B" & i) = CInt(Range("A" & i)) Next i End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que chaque chaîne de texte de la colonne A a été convertie en entier et est affichée dans la colonne B.
Exemple 2 : convertir une chaîne en entier dans VBA (uniquement si la chaîne est un nombre)
Supposons que nous ayons la colonne de valeurs suivante dans Excel, actuellement formatée sous forme de chaînes de texte :
Supposons que nous souhaitions convertir chaque chaîne en entier uniquement si la chaîne est un nombre et afficher les entiers dans la colonne B.
Nous pouvons créer la macro suivante pour ce faire :
Sub ConvertStringToInteger()
Dim i As Integer
For i = 2 To 11
If IsNumeric(Range("A" & i)) Then
Range("B" & i) = CInt(Range("A" & i))
Else
Range("B" & i) = 0
End If
Next i
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que seules les chaînes de texte de la colonne A qui sont des nombres sont converties en entiers dans la colonne B.
Sinon, les chaînes de texte sont simplement converties en une valeur nulle.
Remarque : Vous pouvez trouver la documentation complète de la fonction VBA Cint ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment supprimer les espaces d’une chaîne
VBA : Comment compter les occurrences de caractères dans une chaîne
VBA : comment vérifier si une chaîne contient une autre chaîne