Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Concatenation données dans 1 seule cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bast0504

XLDnaute Occasionnel
Bonjour,

Je posséde des données reportées sur plusieurs cellules et je souhaite automatiser la concatenation dans une seule cellule

J'utilise la formule &" "& mais avec plusieurs cellules concernés l'exercice peut être long

Je cherche une formule si posible sinon un code vba

Merci par avance pour votre aide
Cordialement
 

Pièces jointes

Bonsoir.
Cette fonction perso fait l'affaire :
VB:
Function Concat(ByVal TE) As String
   Dim X, TJN() As String, N As Integer
   If TypeOf TE Is Range Then TE = TE.Value
   For Each X In TE
      N = N + 1
      ReDim Preserve TJN(1 To N)
      TJN(N) = X
      Next X
   Concat = Join(TJN, " ")
   End Function
Formule :
Code:
=Concat(C5:N5)
 
Hello
moi j'allais poster ca.. mais... ca me retourne valeur.. et je ne vois pas pourquoi..
VB:
function ConcatAll(rng as range) as string
for i=1 to rng.count
    if rng(i)<>"" then ConcatAll=rng(i) &" " &ConcatAll
next i
end function
 
Bonsoir à tous 🙂,

Une autre fonction personnalisée qui accepte un nombre quelconque (de 0 à n) d'éléments à concaténer et de divers types (constante, cellule ou plage de cellules).
  • Le premier paramètre est obligatoire et c'est un string qui est le séparateur à utiliser.
  • Le second argument et les suivants sont les éléments à concaténer
  • Si on ne désire aucun séparateur alors on indiquera "" pour premier argument
Exemple : =ConcatX( " - " ; A1:C1 ; B3:B4 ; "texte" ; C6:E7 ; 123,45 )

Le code :
VB:
Function ConcatX(separateur As String, ParamArray t()) As String
Dim s, x, y
   For Each x In t
      If Not IsArray(x) Then
         s = Join(Array(s, x), separateur)
      ElseIf TypeName(x) = "Range" Then
         For Each y In x: s = Join(Array(s, y), separateur): Next
      End If
   Next x
   ConcatX = Mid(s, Len(separateur) + 1)
End Function
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
100
Réponses
7
Affichages
116
Réponses
10
Affichages
453
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…