Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

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 *