VBA : Comment diviser une chaîne en tableau (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour diviser une chaîne en un tableau à l’aide de VBA :

Sub SplitString()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SingleValue = Split(Range("A" & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

Cet exemple particulier divise chaque chaîne de la plage A2:A7 en fonction des espaces dans chaque chaîne, puis affecte les éléments résultants de chaque chaîne dans les plages de cellules B2:B7 et C2:C7 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utilisation de VBA pour diviser une chaîne en tableau

Supposons que nous ayons la liste de chaînes suivante dans Excel :

Supposons que nous souhaitions diviser chaque chaîne en fonction des espaces, puis attribuer les éléments résultants de chaque chaîne à de nouvelles cellules.

Nous pouvons créer la macro suivante pour ce faire :

Sub SplitString()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range("A" & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

VBA divise la chaîne en tableau

Notez que les colonnes B et C contiennent le prénom et le nom de chaque nom complet dans la colonne A.

Notez également que vous pouvez utiliser la fonction VBA Split pour diviser un tableau en fonction d’un délimiteur différent.

Par exemple, supposons que nous ayons la liste d’e-mails suivante :

Supposons que nous souhaitions diviser chaque e-mail en un tableau en fonction de l’endroit où apparaît le symbole @ .

Nous pouvons créer la macro suivante pour ce faire :

Sub SplitString()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range("A" & i), "@")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

La fonction Split divise chaque e-mail dans la colonne A en fonction du symbole @ et affiche les éléments résultants dans les colonnes B et C.

Remarque : Vous pouvez trouver la documentation complète de la fonction VBA Split ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de VBA :

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
VBA : Comment compter les cellules avec un texte spécifique

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *