VBA : Comment diviser une chaîne en fonction de plusieurs délimiteurs
Vous pouvez utiliser la syntaxe de base suivante pour diviser une chaîne en fonction de plusieurs délimiteurs dans VBA :
Sub SplitString()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range("A" & i), "-", " ")
SingleValue = Split(newString , " ")
For j = 1 To 3
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 de tirets ou d’espaces dans chaque chaîne, puis affecte les éléments résultants de chaque chaîne dans les cellules adjacentes des colonnes B, C et D.
Remarque : Cette macro remplace d’abord chaque tiret par un espace, puis divise chaque chaîne en fonction de l’endroit où se trouvent les espaces.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : diviser une chaîne en fonction de plusieurs délimiteurs dans VBA
Supposons que nous ayons la liste de noms suivante dans Excel :
Supposons que nous souhaitions diviser chaque nom en fonction de tirets ou d’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 SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
newString = Replace(Range("A" & i), "-", " ")
SingleValue = Split(newString , " ")
For j = 1 To 3
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que cette macro divise chaque chaîne de la colonne A en fonction des espaces et des tirets et affiche les éléments de texte individuels de chaque chaîne dans les colonnes B, C et D.
Remarque n°1 : nous divisons les chaînes en fonction des tirets et des espaces dans cet exemple, mais vous pouvez diviser les chaînes en fonction des délimiteurs de votre choix en les spécifiant dans les fonctions Remplacer et Diviser .
Remarque n°2 : 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