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

"concatenation"

  • Initiateur de la discussion Initiateur de la discussion loto
  • 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 !

loto

XLDnaute Occasionnel
Bonsoir,

Je souhaiterai récupérer automatiquement le contenu plus de 100 cellules en incluant un séparateur type point (.) entre les valeurs.
Les formules ont leurs limites vu le nbre de données à traiter.
Peut -on écrire cela en vba?
a3=a1&"."&a2&"."&......................

merci
 
Re : "concatenation"

Bonsoir lolo,

Un essai, en attendant mieux (données en ligne 1):

Code:
Sub concat()
Dim i As Long, x As Long, y As String
i = Sheets("Feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
For x = 1 To i
    y = y & Cells(1, x) & "."
Next x
Sheets("Feuil1").Range("A3") = y
End Sub
 
Re : "concatenation"

Bonjour à tous, bonjour loto et mth

Le code de mth est la solution idéale à ce problème, et il n'y a pas mieux, juste que ce code laisse après concaténation un point "." à la fin... Pour y remédier j'ai fait une transformation (toute petite)... Et le code sera:
Code:
Sub concat()
Dim i As Long, x As Long, y As String
i = Sheets("Feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
[COLOR="Red"]y = Cells(1, 1)[/COLOR]
For x = [COLOR="red"]2[/COLOR] To i
    y = y & [COLOR="red"]"."[/COLOR] & Cells(1, x)
Next x
Sheets("Feuil1").Range("A3") = y
End Sub

Une remarque sur la déclaration de loto "Les formules ont leurs limites vu le nbre de données à traiter", je ne suis pas d'accord, les paramètres des foncttions d'excel sont limités par exemple la fonction CONCATENER accepte 30 paramètres; mais si on a besoin de concatener les contenus de plus de 30 cellules (par exemple) on peut jumeler cette fonction plusieurs fois et augmenter ainsi le nombre de paramètres:
Code:
=Concatener(Concatener(P1;P2;...;P30);Concatener(P1;P2;...;P30);...;Concatener(P1;P2;...;P30))
où P1; P2;...; P30 sont les 30 paramètres de la fonction CONCATENER
Mais pour concatener les contenus de 100 cellules par la fonction CONCATENER ou par & c'est fatiguant et long, mieux le faire à l'aide d'un code VBA, c'est plus rapide...

Cordialement
 
Re : "concatenation"

Bonjour,

Merci pour cette démo de maitrise brillantissime.
Je ne suis hélàs pas au niveau car j'essaye lamentablement de transformer le tir car mes données sont en colonne (de a2 à a..) (fin variable) et la cellule de destination de la concaténation en c3
Bref dans l'autre sens et je n'arrive pas à l'écrire!!

Etes-vous tjs sur le fil?

Merci de votre aide
 
Re : "concatenation"

Bonjour Loto,

En repartant du code de hbenalia, essaie ainsi:

Code:
Sub concat()
Dim i As Long, x As Long, y As String
i = Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
y = Cells(1, 1)
For x = 2 To i
    y = y & "." & Cells(x, 1)
Next x
Sheets("Feuil1").Range("c3") = y
End Sub

Bonne journée,

mth
 
Re : "concatenation"

Bonjour Super Loto (vendredi 13), hBenalia,

Mth🙂🙂🙂

Autre proposition,
Code:
[COLOR=blue]Sub[/COLOR] Concat()
[COLOR=blue]Dim[/COLOR] t [COLOR=blue]As[/COLOR] [COLOR=blue]Variant[/COLOR]
[COLOR=blue]With[/COLOR] Sheets([I]"Feuil1"[/I])
 t = Application.Transpose(.Range([I]"A2:A"[/I] & .Cells(Rows.Count, 1).[COLOR=blue]End[/COLOR](xlUp).Row))
 .Range([I]"C3"[/I]) = Join(t, [I]"."[/I])
[COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]

qui peut être réduit (mais moins "lisible"):

Code:
[COLOR=BLUE]Sub[/COLOR] Concat()
[COLOR=BLUE]With[/COLOR] Sheets([i]"Feuil1"[/i])
 .Range([i]"C3"[/i]) = Join(Application.Transpose(.Range([i]"A2:A"[/i] & .Cells(Rows.Count, 1).[COLOR=BLUE]End[/COLOR](xlUp).Row)), [i]"."[/i])
[COLOR=BLUE]End[/COLOR] [COLOR=BLUE]With[/COLOR]
[COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub[/COLOR]

A+
A++ et grosse bise Mth
 
Dernière modification par un modérateur:
Re : "concatenation"

re 🙂

Merci pour tes lumières Hasco, rudement plus joli comme ça, je me le mets de coté pour une prochaine fois 🙂

🙂 Plein de bises Ges et @ + 🙂
 
- 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
1
Affichages
457
Compte Supprimé 979
C
J
Réponses
4
Affichages
781
J
P
  • Question Question
Réponses
2
Affichages
1 K
Daniel Bretelles
D
Réponses
12
Affichages
1 K
M
Réponses
11
Affichages
1 K
macca
M
D
Réponses
4
Affichages
1 K
S
Réponses
18
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…