Macro pour concatener une sélection variable, possible ?

Bonjour à tous,

Je dois travailler un document très lourd. Pour cela, je souhaiterais concatener une selection variable de lignes, dans la même colonne, de sorte à obtenir dans la colonne d'à côté tout le contenu de cette sélection dans une seule cellule. Mon problème est que ma sélection va être variable (le nombre de ligne à concatener peut aller de 1 à 5).

J'imaginais sélectionner mes cellules et appliquer une macro pour obtenir le concetené dans la colonne d'à côté.... est-ce possible ?

Je pense notamment aux colonnes "Références du texte" et "Observation" pour lesquelles j'ai déjà prévue une colonne bis, de couleur jaune, pour mettre la cellule concetenée..

Merci d'avance !

Bonsoir,

Essaie de voir si une petite fonction personnalisée convient pour ce que tu veux obtenir :

Function CONCAT(Plg As Range) As String
    Dim c As Range, conc$
    Application.Volatile
    For Each c In Plg
        conc = conc & Chr(10) & c
    Next c
    CONCAT = Replace(conc, Chr(10), "", 1, 1)
End Function

Tu la places dans un module standard.

Tu l'utilises comme toute autre fonction, par exemple :

=CONCAT(F2:F4)

te renverra les textes des 3 cellules mis bout à bout, séparés par un saut de ligne.

Cordialement.

Merci de ta réponse,

La formule fonctionne bien, mais est-il possible de la transposer en macro pour ne pas avoir à écrire "=CALC" X fois ?

Je pensais par exemple sélectionner mes cellules et lancer une macro pour quelles se concatener en une seule dans la colonne d'à coté, est-ce une solution envisageable ?

Merci par avance,

Antonin

Cela te prendra plus de temps en macro à lancer car tu ne peux pas lui fournir 2 infos simultanément... Il faudrait alors envisager 2 macros, la 1re pour te questionner de façon que tu fournisses la source puis la cible, laquelle lancerait la macro qui opère en lui fournissant ces informations. Au total cela te prendra bien plus de temps que de mettre une formule, qu'au demeurant tu peux recopier...

Cordialement.

D'accord, mais pour être sur de m'être bien fait comprendre je pensais à :

1 - Sélectionné manuellement mes cellules a concatener

2 - Lancer une macro à l'aide d'un raccourci clavier

--> Obtention dans la colonne d'à côté de la cellule concatener à partir de ma sélection

Je pense que ceci est tout de même plus rapide que de copier/coller la formule à chaque fois (car il faut toujours rentrer dedans pour ré-ajuster la selection de cellules...)

Merci d'avance

Et bien tu l'adaptes...

Sub ConcaténerSélection()
    Dim c As Range, conc$
    For Each c In Selection
        conc = conc & Chr(10) & c
    Next c
    Selection.Offset(, 1).Resize(1) = Replace(conc, Chr(10), "", 1, 1)
End Sub
Rechercher des sujets similaires à "macro concatener selection variable possible"