Concatener 130 cellules

Comment concatener 130 cellules sans perdre son temps ?

En fait je veux dire que pour concatener il faut mettre chaque texte (A4:B4:C4:D4:E4:F4:G4 ...), alors comment faire pour mettre ça et que ça marche : =CONCATENER(A4:EZ4) ?

Merci à toutes les personnes qui pourront m'aider

PS: Bonjour tout de même

Bonjour. Bienvenue sur le Forum

Dans un Module, la fonction personnalisée

Function concat(champ)
   temp = ""
   For Each d In champ
     If Len(d.Value) > 0 Then temp = temp & d.Value & ","
   Next d
   concat = temp
End Function

et sur la feuille, la formule

=concat(A4:EZ4)

Merci beaucoup Amadéus, pour le code et pour l’accueil.

Et pourrait-on ignorer les espaces blancs, de sorte à les faire disparaître lors de la "concatenation" ?

Merci Amadéus, et les autres !

Bonjour

Dans la ligne

 If Len(d.Value) > 0 Then temp = temp & d.Value & ","

tu supprimes la virgule de fin pour avoir

 If Len(d.Value) > 0 Then temp = temp & d.Value & ""

ou le & "," en entier pour avoir

If Len(d.Value) > 0 Then temp = temp & d.Value

Cordialement

Bonjour, bonjour !

Pour concaténer des cellules en ligne, une boucle est inutile : privilégier les fonctions Excel et VBA !

Pour la concaténation, VBA dispose dans ses fonctions manipulant du texte de Join

à partir d'une matrice unidimensionnelle (ou variable tableau).

Une plage de cellules est une matrice mais à deux dimensions (lignes, colonnes)

mais une ligne peut en être extraite grâce à la fonction de feuille de calculs INDEX

Donc en combinant ces deux fonctions, une seule ligne de code est nécessaire pour effectuer la concaténation !

Un exemple clair aurait été bienvenu : faut-il un délimiteur entre chaque cellule ou au contraire tout doit être collé ?

Pour supprimer un caractère indésirable, ne pas oublier la fonction VBA Replace

Bonsoir.

Merci des réponses mais je crains de mal m'être fait comprendre. Excusez ma maladresse.

En fait, je voudrais que les cellules contenant un ou plusieurs espaces blancs ne soient pas concatenés.

Est-ce possible ?

Cordialement et merci

Peut-être …

En attendant un exemple concret clair et précis, voir du côté de la fonction VBA InStr

Voici un exemple. Je voudrais que ne soit pas concatenés les cellules contenant des espaces blancs

Merci

20exemple-2.xlsm (14.64 Ko)

Bonjour

Function concat(champ)
       temp = ""
       For Each d In champ
         If Len(d.Value) > 0 And Not d Like "*" & Chr(32) & "*" Then temp = temp & d.Value & ","
       Next d
       concat = temp
    End Function

Cordialement

Si la solution du précédent message ne convient pas :

Un bien grand merci Amadéus

Rechercher des sujets similaires à "concatener 130"