Fusionner des valeurs sous excel 2010
Résolu
Neophy
-
Neophy -
Neophy -
Bonjour,
J'aimerai trouver une formule ou une macros sous excel qui me permette de rassembler plusieurs valeurs d'une colonne dans la première cellule en haut de celle ci. Si les valeurs peuvent etre séparer par un point virgule cela serait parfait!
Par exemple, j'ai une colonne allant de A1 à A5:
720
721
825
825
826
Et je voudrai que le tout soit rassembler en A1 sous cette forme:
720; 721; 825; 825; 826
J'ai un très gros tableaux de 8000 lignes et 17 colonnes, et je dois repeter cette opération en diverses endroits, donc une technique rapide ferait gagner un temps de travail non négligeable!
Merci d'avance!
J'aimerai trouver une formule ou une macros sous excel qui me permette de rassembler plusieurs valeurs d'une colonne dans la première cellule en haut de celle ci. Si les valeurs peuvent etre séparer par un point virgule cela serait parfait!
Par exemple, j'ai une colonne allant de A1 à A5:
720
721
825
825
826
Et je voudrai que le tout soit rassembler en A1 sous cette forme:
720; 721; 825; 825; 826
J'ai un très gros tableaux de 8000 lignes et 17 colonnes, et je dois repeter cette opération en diverses endroits, donc une technique rapide ferait gagner un temps de travail non négligeable!
Merci d'avance!
3 réponses
-
Bonjour,
Une formule, au vu du nombre de données à traiter, sera forcément plus fastidieuse qu'une macro.
Je te donne donc un code VBA :
Ce code lance :
- une première boite de dialogue pour te demander la plage de cellules à traiter. Tu peux soit la sélectionner avec la souris, soit y écrire son adresse (exemple : A1:A125)
- une deuxième boite de dialogue pour te demander la cellule ou tu veux placer tes données (séparées d'un ;). Tant que tu ne sélectionnes pas une et une seule cellule cette boite de dialogue apparait.
Tu dis...Sub SelectionEtConcatenation() Dim MonTableau() As String Dim Chaine As String Dim Plage As Range, Cel As Range, RngDest As Range Dim j As Integer Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8) ReDim MonTableau(Plage.Count) j = 0 For Each Cel In Plage MonTableau(j) = Cel.Value j = j + 1 Next For j = 0 To UBound(MonTableau) Chaine = Chaine & "; " & MonTableau(j) Next j Set RngDest = Application.InputBox("Sélectionnez une cellule !", "Ou voulez vous concaténer vos valeurs?", Type:=8) Do While RngDest.Count <> 1 MsgBox "Merci de sélectionner au moins une cellule, et une seule!" Set RngDest = Application.InputBox("Sélectionnez une cellule !", "Ou voulez vous concaténer vos valeurs?", Type:=8) Loop RngDest = Right(Chaine, Len(Chaine) - 2) Set Plage = Nothing Set RngDest = Nothing End Sub
-
Bonjour,
il existe cette formule :
= A1 & ";" & A2 & ";" & A3 &";" & A4 & ";" & A5
Mais vu que tu as 8000 lignes, confirmes moi que ca peut t'aller -
Merci pijaku!!
Fantastique! Tu viens de diviser mon temps de travail par 5!
Merci à vos réponses!