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

concatener + de 30 chaînes

  • Initiateur de la discussion Initiateur de la discussion carloside
  • Date de début Date de début

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 !

C

carloside

Guest
Bonjour à tous,

J'ai debuté hier Excell et je cherches désèspérement comment concatener un grand nombre de cellules. Ne connaissant pas grand'chose en macro VBA, j'ai trouvé et modifié celle-ci :

Function TXT_Concatenation(Plage2Concatenate As Range) As String
For Each cl In Plage2Concatenate: txt = txt & IIf(cl.Text <> "", cl.Text & " ", ""): Next cl: TXT_Concatenation = IIf(Right(txt, 1) = " ", Mid(txt, 1, Len(txt) - 1), txt)
End Function


Sub Cell_TXT_Concatenation()

ActiveCell = TXT_Concatenation(Range("D1:I1"))

End Sub

Cela fonctionne pour concatener dans la cellule choisie ( par ex : pour A2, les chaînes de caractère contenue dans D2 jusque I2, pour A3 D3 jusqu a I3 etc...)

Je souhaiterais appliquer cela a toutes mes lignes de la colonne A (j'en ai + de 11000)

En esperant avoir été clair.

Merci d'avance
 

Pièces jointes

Re : concatener + de 30 chaînes

Bonjour

J'avais récupéré ça une fois ...

A tester

Code:
 [/FONT]
[FONT=Arial]Function ConcatPlage(plage As Range, séparateur As String, Optional contenant As String) As String[/FONT]
[FONT=Arial]    Dim rep As String, c As Range[/FONT]
[FONT=Arial]    For Each c In plage[/FONT]
[FONT=Arial]        If InStr(c.Value, contenant) > 0 Then[/FONT]
[FONT=Arial]            rep = rep & c.Value & séparateur[/FONT]
[FONT=Arial]        End If[/FONT]
[FONT=Arial]    Next c[/FONT]
[FONT=Arial]    ConcatPlage = Left(rep, Len(rep) - Len(séparateur))[/FONT]
[FONT=Arial]End Function


Mise en œuvre : ALT+F11, Insertion/Module, copier la fonction ConcatPlage ci-dessus, ALT+Q

Mise en application :
=ConcatPlage(la_plage;"le_symbole_séparateur","condition_optionnelle)

Exemples

* plage [A1:A20] = 1 à 20, concatener les expressions contenant "2"
=ConcatPlage(A1:A20;"#";2)
Résultat : 2#12#20

* plage [A1:A20] = 1 à 20, concatener toutes les expressions
=ConcatPlage(A1:A20;"#")
Résultat: 1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20
 
Re : concatener + de 30 chaînes

bonjour carloside nat54 le forum une methode tres rapide pour concatenener sur 11000 lignes utilisant un tableau interm... je suis parti de ton exemple je m arrete a la colonne i en attendant plus infos de ta part comme cela pas facile???
 

Pièces jointes

Re : concatener + de 30 chaînes

Voila j'ai testé vos 2 macros.

@Nat54: c'est exactement ce que je cherchais.

@Excalibur: J'ai un ptit prob, elle bouge le contenu au lieu de le copier.
Comment y remedier?

Merci bcp pour votre aide.

A bientôt
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…