Comment convertir une chaîne en long dans VBA (avec exemples)
Vous pouvez utiliser la fonction CLng dans VBA pour convertir une chaîne de texte en un type de données long.
Voici deux manières courantes d’utiliser cette fonction en pratique :
Méthode 1 : convertir une chaîne en long dans VBA
Sub ConvertStringToLong() Dim i As Integer For i = 2 To 11 Range("B" & i) = CLng(Range("A" & i)) Next i End Sub
Cette macro particulière convertira chaque chaîne de la plage A2:A11 en un type de données long et affichera les valeurs longues dans la plage B2:B11 .
Méthode 2 : convertir une chaîne en long dans VBA (uniquement si la chaîne est un nombre)
Sub ConvertStringToLong()
Dim i As Integer
For i = 2 To 11
If IsNumeric(Range("A" & i)) Then
Range("B" & i) = CLng(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 un type de données long 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 long 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 un type de données long et l’afficher dans la colonne B.
Nous pouvons créer la macro suivante pour ce faire :
Sub ConvertStringToLong() Dim i As Integer For i = 2 To 11 Range("B" & i) = CLng(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 un type de données long et est affichée dans la colonne B.
Exemple 2 : convertir une chaîne en long 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 un type de données long uniquement si la chaîne est un nombre et les afficher dans la colonne B.
Nous pouvons créer la macro suivante pour ce faire :
Sub ConvertStringToLong()
Dim i As Integer
For i = 2 To 11
If IsNumeric(Range("A" & i)) Then
Range("B" & i) = CLng(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 types de données longs 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 CLng 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