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

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

  • Concatenation dans une cellulle.xlsx
    9 KB · Affichages: 8

Dranreb

XLDnaute Barbatruc
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)
 

vgendron

XLDnaute Barbatruc
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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • bast0504- Concatener- v1.xlsm
    18 KB · Affichages: 5
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…