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 :

Chaîne divisée VBA basée sur plusieurs délimiteurs

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

Ajouter un commentaire

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