Fonction CONCATENER plus de 30 fois

C

cram

Guest
Bonjour à tous,

Aux grand EXLdien et MACROdien, je fais appelle à voir grand savoir formuleux.

Bon voilà ma question:

Avec une formule,
Est-ce possible de CONCATENER plus de 30 cellules ensembles sans avoir une formule qui énumère chacune des cellules ?
Soit: =CONCATENER(A1;A2......A40) ou la fonction ' & '
A savoir:
Chacune des valeur concaténés dois être suivie d'une virgule et d'un espace.


Sinon, une macro peut être, qui est relative à la sélection de l'entête de collone par exemple ?
Ex.:
[li]]Si la cellule A1 est sélectionné allors CONCATER A2, A3...A40 = résultat dans A42[/li]
[li]Si la cellule B1 est sélectionné allors CONCATER B2, B3...B40 = résultat dans B42[/li]

Merci,
Cram

Message édité par: cram, à: 10/09/2005 19:06
 

Monique

Nous a quitté
Repose en paix
Re:Fonction CONCATENER plsu de 30 fois

Bonjour,

On peut aller bien plus loin que 30, en utilisant le &
La limite est le nb de caractères de la formule : 1024
Celle-ci n'a 'que' 345 caractères :
=A1&', '&A2&', '&A3&', '&A4&', '&A5&', '&A6&', '&A7&', '&A8&', '&A9&', '&A10&', '&A11&', '&A12&', '&A13&', '&A14&', '&A15&', '&A16&', '&A17&', '&A18&', '&A19&', '&A20&', '&A21&', '&A22&', '&A23&', '&A24&', '&A25&', '&A26&', '&A27&', '&A28&', '&A29&', '&A30&','&A31&', '&A32&', '&A33&', '&A34&', '&A35&', '&A36&', '&A37&', '&A38&', '&A39&', '&A40
 

cram

XLDnaute Nouveau
Re:Fonction CONCATENER plsu de 30 fois

Merci beaucoup Monique,

Je connais cette fonction ' & ' et l'utilise déja dans ma formule.
Je ne l'ais pas utilisé pour fain de simplication de ma question.
Je voudrais savoir si il y a d'autres façons de faire.

:) C'est moins long à écrire...

Merci

Message édité par: cram, à: 10/09/2005 19:10
 

Monique

Nous a quitté
Repose en paix
Re:Fonction CONCATENER plsu de 30 fois

Re,

D'autres façons de faire, je ne sais pas.
Tu vas déjà plus loin que 30.

J'ai fait un essai : c'est possible de A1 à A113, avec virgule et espace entre chaque

Tu peux donner un nom à ta formule (Insertion - Nom - Définir)
 

Bricofire

XLDnaute Impliqué
Re:Fonction CONCATENER plsu de 30 fois

Bonsoir cram, Monique :)

Avec une macro, donc du vba, c'est facilou, je ne sais pas si j'ai le temps de faire un fichier avant d'aller manger puis au ciné, sinon, si no réponse autres, ce sera cette nuit :)

En attendant un piste pour le code :


Sub Plop()
Dim i As Long

For i = 1 To 49
Range('AX4') = Range('AX4') + Cells(4, i) + ', '
Next i
End Sub


Ce qui te donne en AX4 :

Toto1, Toto2, Toto3, Toto4, Toto5, Toto6, Toto7, Toto8, Toto9, Toto10.....Toto45, Toto46, Toto47, Toto48, Toto49,

l'automatisation du reste est aisée, reste à savoir si on se heurte à la capacité max d'une cellulle à un moment, j'ai jamais exploré, Monique en sait surement plus là-dessus :)

A préciser, plus des réglages de fin de chaîne et ça peut être bon...

à suivre

Bfr
 

excalibur

XLDnaute Impliqué
Re:Fonction CONCATENER plsu de 30 fois

bonjour tous le monde j utilise un macro dans ce sens 37 cellules & ca marche Public Sub concatener()
Dim cn As Range
Dim l As Long
l = [i17].Value - 1
Application.ScreenUpdating = False
Dim trouvéfin As Range
Range('cn65536').End(xlUp).Offset(0, -42).Select
Range((ActiveCell.Address) & ':' & (ActiveCell.Offset(0, 36).Address)).Value = 'fin'
Set trouvéfin = Range('ax1:ax' & Range('ax65536').End(xlUp).Row).Find('fin', LookIn:=xlValues)
ActiveCell.Offset(1, 0).Select
Range((ActiveCell.Address) & ':' & (ActiveCell.Offset(l, 0).Address)).Select
For Each cn In Selection
cn.Offset(0, 42).Value = cn.Value & ' ' & cn.Offset(0, 1).Value & ' ' & cn.Offset(0, 2).Value & ' ' & cn.Offset(0, 3).Value & ' ' & cn.Offset(0, 4).Value & ' ' & cn.Offset(0, 5).Value & ' ' & cn.Offset(0, 6).Value & ' ' & cn.Offset(0, 7).Value & ' ' & cn.Offset(0, 8).Value & ' ' & cn.Offset(0, 9).Value & ' ' & cn.Offset(0, 10).Value & ' ' & cn.Offset(0, 11).Value & ' ' & cn.Offset(0, 12).Value & ' ' & cn.Offset(0, 13).Value & ' ' & cn.Offset(0, 14).Value & ' ' & cn.Offset(0, 15).Value & ' ' & cn.Offset(0, 16).Value & ' ' & cn.Offset(0, 17).Value & ' ' & cn.Offset(0, 18).Value & ' ' & cn.Offset(0, 19).Value & ' ' & cn.Offset(0, 20).Value & ' ' & cn.Offset(0, 21).Value & ' ' & cn.Offset(0, 22).Value & ' ' & cn.Offset(0, 23).Value & ' ' & cn.Offset(0, 24).Value & ' ' & cn.Offset(0, 25).Value & ' ' & cn.Offset(0, 26).Value & ' ' & cn.Offset(0, 27).Value & ' ' & cn.Offset(0, 28).Value & ' ' & cn.Offset(0, 29).Value & ' ' & cn.Offset(0, 30).Value & ' ' & cn.Offset(0, 31).Value & ' ' & _
cn.Offset(0, 32).Value & ' ' & cn.Offset(0, 33).Value & ' ' & cn.Offset(0, 34).Value & ' ' & cn.Offset(0, 35).Value & ' ' & cn.Offset(0, 36).Value & ' ' & cn.Offset(0, 37).Value
Next cn end sub'salutations
 

Celeda

XLDnaute Barbatruc
Re:Fonction CONCATENER plsu de 30 fois

Bonsoir,

Plus on est de fous plus on s'amuse!!:)

Retrouvée dans les archives et dans MesMacros, une autre procédure, originale, sur selection (j'ai testé sur plus de 50 cellules), un travail de Pascal76 et d'Abel pour Arno :

Lien supprimé



Celeda

Message édité par: Celeda, à: 10/09/2005 23:57
 

Bricofire

XLDnaute Impliqué
Re:Fonction CONCATENER plsu de 30 fois

Re à tous, excalibur, Celeda :)

Bon Cram, voilà j'espère ton truc, tu cliques sur la première cellule et ça concatène la ligne dans la cellulle en fin de liste...On peut insérer des cellulles après.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'On Error GoTo Erreur
Nlig = Target.Row
AD = Target.Column ' détermine la colonne de la case selectionnée
If Target.Count > 1 Then End 'Interdit les sélections multiples
If Target.Offset(0, 2) <> '' Then ' ne traite que si au moins une case significative + une case de 'tatal donc alors
If AD = 1 Then ' ne traite que si colonne A
Call Plop
End If
End If
'Exit Sub
'Erreur: End
End Sub


Option Explicit
Public AD As Long
Public Nlig As Long


Sub Plop()
Dim I As Long
Dim J As Long

'Il est impératif pour la logique de la chose qu'il y ai au moins un caractère
' dans la case où se fera la concaténation..lors de l'initialisation

J = Cells(Nlig, 256).End(xlToLeft).Column - 1 ' détermine le N° de la derniere colonne
' avant la colonne de concaténation
Cells(Nlig, 256).End(xlToLeft).Clear 'vide la case de concaténation avant maj
Cells(Nlig, 256).End(xlToLeft).Offset(0, 1).Interior.ColorIndex = 4
For I = 2 To J 'Filtre évitant la présence de ', ' en fin de conca
If I < J Then
Cells(Nlig, J + 1) = Cells(Nlig, J + 1) & Cells(Nlig, I) & ', '
Else
Cells(Nlig, J + 1) = Cells(Nlig, J + 1) & Cells(Nlig, I)
End If

Next I

End Sub


C'est un peu commenté.

Bonne nuit à tous,

Bfr [file name=ConcaFolie.zip size=11222]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ConcaFolie.zip[/file]

Message édité par: bricofire, à: 11/09/2005 03:37
 

Pièces jointes

  • ConcaFolie.zip
    11 KB · Affichages: 43

cram

XLDnaute Nouveau
Re:Fonction CONCATENER plsu de 30 fois

Wow....je tien à te remercier pour tes 'yeux rouge'. Il était tard...

Je test ta solution et vous contacterez aussitôt le test effectué.

J'espère que tu a eu un bon ciné...

Merci encore et bonne nuit...
 

cram

XLDnaute Nouveau
Re:Fonction CONCATENER plsu de 30 fois

Bonjour à tous, :woohoo:

Je tiens à remercier tout le monde qui m'on donné une solution possible à mon pb.

Je l'ai est toutes essayé et j'ai retenu celle de Celeda. Elle s'apprête à toutes les sauces et est plus simple pour moi d'utilisation (petit débutant Macrodien que je suis).

Un spécial merci à Bricofire qui à travaillé très tard, tard, tard... :silly: pour moi.

Un grand bonjour et que si Dieu existe; qu'il vous 'Excel'.
 

Statistiques des forums

Discussions
312 087
Messages
2 085 198
Membres
102 815
dernier inscrit
Henridic