[VBA] fusionner une colonne dans une seule cellule avec point virgule

Bonjour,

Je débute sur Vba et j'aurai aimé savoir comment faire pour concaténer toute une colonne dans une seule cellule avec une séparation par un point virgule.

Etant vraiment un nouveau dans ce domaine, je ne sais pas par ou commencer...

Merci par avance,

Amicalement.

Bonjour et bienvenue sur le le forum,

Voici un exemple,

Sub Test_Boucle()
Dim i As Integer, MaVariable As String
 For i = 1 To 10
   MaVariable = MaVariable & Range("A" & i) & ";"
 Next
 Range("B1") = MaVariable
End Sub

Pour bien commencer en vba, je vous propose cette lecture,

https://www.excel-pratique.com/fr/vba/introduction.php

Parfait ça marche merci

Bonjour ,

Je débute sur Excel et je souhaiterais pour ma part réaliser le meme exercice, mais en concaténant les caractères (ou chaine de caractères) placés dans les cellules le long d'une ligne, dans une seule cellule. De plus, je voudrais que les cellules vides soient considérés comme des caractères "espace" si possible.

Je vous joins un exemple Excel avec deux lignes expliquant ce que je veux faire

Merci d'avance à toute âme charitable qui me donneras des (pistes) de reponses^^

21exemple.xlsx (8.09 Ko)

Bonjour,

Un nouveau sujet aurait été plus adapté...

Une solution utilisant une fonction VBA personnalisée (à coller dans un module standard de l'éditeur VBA, accessible via ALT + F11) :

Function ConcatSerie(Plage As Range, Optional CarSiVide As String = "") As String

Dim Res As String, Cel As Range

For Each Cel In Plage
    If Cel = "" Then Res = Res & CarSiVide Else Res = Res & Cel
Next Cel
ConcatSerie = Res

End Function

A utiliser ensuite comme une fonction classique :

=ConcatSerie(B1:L1;" ")

Le fichier :

43exemple.xlsm (13.37 Ko)

PS : c'est aussi réalisable en formule classique, mais ça risque de devenir un peu lourd à écrire si la plage comporte de nombreuses cellules.

Bonjour

Je vous remercie pour votre message rapide. Votre réponse répond parfaitement à ce que je souhaite faire. Cependant, je voudrais appeler la fonction dans une macro et (étant novice) je ne sais pas trop comment faire. Après avoir saisi la fonction juste au dessus, j'ai tenté l'appel avec ces instructions :

Sub concatenat()

Dim chaine As String

Range("C4").Select

chaine =ConcatSerie(B1:L1;" ")

End Sub

Et j'ai un message d'erreur de compilation : Attendu : séparateur de liste ou )

Une aide supplémentaire svp

Merci ^^

Effectivement, votre syntaxe relève de la science fiction ! A tester :

Sub Concatenat()

Range("C4") = ConcatSerie(Sheets("NomFeuille").Range("B1:L1")," ")

End Sub

Elle fonctionne comme je le veux. Je vous remercie

A +

Rechercher des sujets similaires à "vba fusionner colonne seule point virgule"