Macro VBA pour concaténation
Résolu
Mat
-
Ed -
Ed -
Bonjour,
je souhaite réaliser une macro qui me permette de concaténer des cellules sachant que :
- je ne connais pas le nombre exact de cellules à concaténer
- je souhaite qu'une virgule apparaisse entre chaque cellule ainsi concaténée.
Exemple :
données source (chaque lettre est sur une ligne dans une cellule)
A
B
C
D
E
..
W
données de sortie (dans une seule cellule) :
A,B,C,D,E,..,W
Cordialement,
je souhaite réaliser une macro qui me permette de concaténer des cellules sachant que :
- je ne connais pas le nombre exact de cellules à concaténer
- je souhaite qu'une virgule apparaisse entre chaque cellule ainsi concaténée.
Exemple :
données source (chaque lettre est sur une ligne dans une cellule)
A
B
C
D
E
..
W
données de sortie (dans une seule cellule) :
A,B,C,D,E,..,W
Cordialement,
Configuration: Windows XP Internet Explorer 6.0
6 réponses
-
Salut,
Pourquoi VBA une formule sait faire exemple si tes données sont en A1, A2, A3 etc ...
cette formule
=A1&","&A2&","&A3&","&A4&","&A5&","&A6
elle pourrait être complétée par des conditionnelles pour ne pas afficher une série de ,,,, si les cellules vides viennent s'intercaler et éviter cet affichage A,B,C,,,,,,F
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein) -
Bonjour,
Merci pour ta réponse. Cependant, le but est d'appliquer cette formule plusieurs fois et à un grand nombre de cellules (de 100 à 200 parfois). Manuellement ca va me prendre trop de temps à taper cette formule.
Cordialement, -
Re,
Tu saisis ta formule exemple en F1 ensuite tu l'incrémentes jusqu'en bas de ton tableau et ça prends dix secondes tout au plus
Pour incrémenter une fois la formule rentrée dans ta cellule, clic sur cette cellule, en bas à droite tu clic gauche sur le petit carré et sans lacher le clic tu fais glisser vers le bas et ta formule se recopie sans problème
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein) -
Bonjour,
Fonction personnalisée à mettre dans un module :Function ConcatPlage(plage As Range, separateur As String) As String Dim c As Range Dim rep As String For Each c In plage rep = rep & separateur & c.Value Next c ConcatPlage = Mid(rep, Len(separateur) + 1) End FunctionLa plage doit être d'un seul tenant (pas de sélection multiple)
Syntaxe :
=ConcatPlage(plage, separateur)
Ex :
=ConcatPlage(A1:A6;",")
eric -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour à tous,
j'arrivais moi aussi avec une fonction mais Eriic a été le + rapide! donc, je n'insiste pas car c'était à peu près la m^me
Le problème est le format de la cellule de résultat:
j'ai testé avec environ 210 cellules de 6 caractères chacune:
il faut 5 lignes sur une colonne de largeur maxi(255) en utilisant le retour automatique à la ligne... -