VBA – Type de Données Chaine de Texte (Dim String)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on mai 1, 2023

Type de Variable Chaîne de Texte

Le type de données chaine plus souvent appelé String est l’un des types de données les plus courants dans VBA. Il stocke des « chaînes » de texte.

Pour déclarer une variable de type String, vous utilisez l’instruction Dim (abréviation de Dimensionner) :

Dim strNom as String

Pour attribuer une valeur à une variable, on utilise le signe égal :

strNom = "Fred Smith"

L’insertion de ce signe dans une procédure se présente comme suit :

Sub strExemple()
'déclaration de la chaine
   Dim strNom as string
'populer la chaine
    strNom = "Fred Smith"
'afficher dans une boite de message
   MsgBox strNom
End Sub

Si vous exécutez le code ci-dessus, la boîte de message suivante s’affichera.

vba string declare

Variable de Chaîne Fixe

Il existe en fait deux types de variables de chaîne : variables et fixes.

La variable de chaîne « variable » (illustrée dans l’exemple précédent) permet à votre chaîne d’être de n’importe quelle longueur. C’est le cas le plus courant.

La variable de chaîne « fixe » définit la taille de la chaîne. Une chaîne fixe peut contenir jusqu’à 65 400 caractères.

Dim strNom as string *20

Lorsque vous définissez une variable fixe, le nombre de caractères de la variable est bloqué, même si vous utilisez moins de caractères.

Remarquez les espaces dans le graphique ci-dessous : la variable contient des caractères de remplacement pour le reste de la chaîne, car « Fred Smith » compte moins de 20 caractères.

type donne string longueur fixe exemple valeur debug

Toutefois, si vous avez déclaré une chaîne de caractères sans en spécifier la longueur, celle-ci ne contiendra que le nombre de caractères qui lui sont transmis.

type donne string variable exemple valeur debug

Déclarer une Variable de Type Chaîne au Niveau du Module ou au Niveau Global

Dans l’exemple précédent, vous avez déclaré la variable Chaîne dans une procédure. Les variables déclarées dans une procédure ne peuvent être utilisées que dans cette procédure.

type donne string declaration niveau procedure exemple

En revanche, vous pouvez déclarer des variables de type « String » au niveau du module ou au niveau global.

Niveau du Module

Les variables de Niveau Module sont déclarées au début des modules de code à l’aide de l’instruction Dim.

type donne string declaration niveau module exemple

Ces variables peuvent être utilisées avec n’importe quelle procédure de ce module de code.

Niveau Global

Les variables de Niveau Global sont également déclarées en haut des modules de code. Cependant, au lieu d’utiliser l’instruction Dim, vous utilisez l’instruction Public pour indiquer que la variable de chaîne est disponible pour être utilisée dans l’ensemble de votre projet VBA.

Public strNom as String

type donne string declaration niveau global public exemple

Si vous déclarez la variable chaîne au niveau d’un module et que vous l’utilisiez dans un autre module, une erreur se produira.

type donne string exemple erreur variable non definie

Toutefois, si vous utilisez le mot-clé Public pour déclarer la variable chaîne, l’erreur ne se produira pas et la procédure s’exécutera parfaitement.

Convertir des Valeurs Stockées sous Forme de Chaînes de Caractères

Il peut arriver que vous ayez dans Excel des valeurs stockées sous forme de texte – par exemple, vous avez importé un fichier CSV qui a pu contenir du texte au lieu de chiffres.

Notez que la valeur dans A1 est alignée à gauche, ce qui indique qu’il s’agit d’une valeur texte.

vba string text

Vous pouvez utiliser une Fonction VBA peut être utilisée pour convertir ces nombres en texte

Sub ConvertirValeur()
'populer la chaine
    strQty = Range("A1")
'populer le nombre (double) avec la chaine
    dblQty = strQty
'populer la plage avec le nombre
    Range("A1") = dblQty
End Sub

Lorsque vous exécutez le code, le nombre se déplace vers la droite, ce qui indique qu’il est désormais stocké sous forme de nombre.

vba string number

Cette fonction est particulièrement utile lorsque vous parcourez en boucle une grande plage de cellules.

vba string list

Sub ConvertirValeur()
    Dim strQty As String, dblQty As Double
    Dim rw As Integer, i As Integer
'Compte les rangées à convertir
    rw = Range("A1", Range("A1").End(xlDown)).Rows.Count
'Boucle sur chaque cellule et les convertit nombre
    For i = 0 To rw – 1
'popule la chaine
        strQty = Range("A1").Offset(i, 0)
'popule le nombre (double) avec la chaine
        dblQty = strQty
'popule la plage avec le nombre
        Range("A1").Offset(i, 0) = dblQty
    Next i
End Sub

Le résultat est que toutes les cellules sont converties en nombres

vba number list

Convertir des Chaînes de Caractères Stockées en Tant que Valeurs

De même, il peut arriver que vous deviez convertir une chaîne de caractères en valeur – par exemple, si vous avez besoin d’un zéro initial dans un numéro de téléphone.

vba string number to string

Sub ConvertirChaine()
    Dim strPhone As String, dblPhone As Double
    Dim rw As Integer, i As Integer
'compte les rangées à convertir
    rw = Range("A1", Range("A1").End(xlDown)).Rows.Count
'boucle sur chaque cellule et les convertit nombre
    For i = 0 To rw – 1
'popule la chaine
        dblPhone = Range("A1").Offset(i, 0)
'popule le nombre (double) avec la chaine
        strPhone = "'0" & dblPhone
'popule la plage avec le nombre
        Range("A1").Offset(i, 0) = strphone
    Next i
End Sub

vba string number to string converted

Notez que vous devez commencer la chaîne de texte par une apostrophe (‘), avant le zéro, afin d’indiquer à Excel d’entrer la valeur sous forme de chaîne.

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA