Comment utiliser VBA pour concaténer des chaînes ?
Pour concaténer deux chaînes à l’aide d’un code VBA, vous devez utiliser l’esperluette. Vous pouvez utiliser une esperluette entre deux chaînes pour les combiner, puis affecter cette nouvelle valeur à une cellule, une variable ou une boîte de message. De la même manière, vous pouvez également concaténer plus de deux valeurs.
Plus loin, nous verrons un exemple simple pour le comprendre.
Étapes à suivre pour utiliser VBA pour concaténer
- Entrez d’abord la première chaîne en utilisant des guillemets doubles.
- Après cela, tapez une esperluette.
- Ensuite, entrez le deuxième texte en utilisant des guillemets doubles.
- À la fin, affectez cette valeur à une cellule ou à une variable, ou utilisez une boîte de message pour la voir.
Sub vba_concatenate()
Range("A1") = "Mike" & "Ross"
End Sub
Concaténer avec un délimiteur
Vous pouvez également utiliser un délimiteur entre deux chaînes en ajoutant simplement une troisième esperluette. Considérez le code suivant.
Range("A1") = "Mike" & "-" & "Ross"
Dans le code ci-dessus, vous avez utilisé un délimiteur dans deux chaînes et les avez rejoints en utilisant simplement des esperluettes. Donc, fondamentalement, chaque fois que vous devez joindre quelque chose, vous devez utiliser une esperluette à l’intérieur.
Concaténer à l’aide de variables
Vous pouvez également stocker des valeurs dans des variables, puis concaténer les valeurs de ces deux variables. Considérez le code suivant.
Dans le code ci-dessus, vous avez des variables déclarées en tant que variables, puis vous avez attribué des valeurs à ces variables. Et à la fin, nous avons utilisé une esperluette pour combiner les trois variables, puis avons attribué le résultat à la cellule A1.
Concaténer une plage à l’aide de VBA
Vous pouvez également concaténer des valeurs à partir d’une plage de cellules à l’aide d’un VBA. Considérez la macro suivante.
Sub vba_concatenate()
Dim rng As Range
Dim i As String
Dim SourceRange As Range
Set SourceRange = Range("A1:A10")
For Each rng In SourceRange
i = i & rng & " "
Next rng
Range("B1").Value = Trim(i)
End Sub
Dans le code ci-dessus, vous avez utilisé FOR NEXT (For Loops) pour parcourir la plage que vous souhaitez concaténer.
Ainsi, il va à chaque cellule de la plage (A1: A10) stocke cette valeur dans la variable I et utilise une esperluette pour concaténer une valeur à chaque itération. À la fin, définissez la chaîne combinée sur la plage B1.
Et le code suivant concatène les valeurs de la plage sélectionnée. Tout ce que vous avez à faire est de sélectionner une plage, puis d’exécuter le code.
Dim rng As Range
Dim i As String
For Each rng In Selection
i = i & rng & " "
Next rng
Range("B1").Value = Trim(i)
Concaténer une colonne entière ou une ligne
Si vous souhaitez concaténer une colonne entière ou une ligne, dans ce cas, il est préférable de ne pas utiliser la méthode de boucle. Vous pouvez utiliser la fonction de feuille de calcul « TextJoin » qui peut joindre une ligne entière ou une colonne (considérez le code suivant).
'join values from column A.
Dim myRange As Range
Dim myString As String
Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("A:A"))
'join values from row 1.
Dim myRange As Range
Dim myString As String
Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("1:1"))