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 :
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