Fusionner des valeurs sous excel 2010

Résolu
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!


A voir également:

3 réponses

pijaku Messages postés 13513 Statut Modérateur 2 763
 
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


1
melanie1324 Messages postés 1561 Statut Membre 155
 
Bonjour,

il existe cette formule :

= A1 & ";" & A2 & ";" & A3 &";" & A4 & ";" & A5

Mais vu que tu as 8000 lignes, confirmes moi que ca peut t'aller
0
Neophy
 
Merci pijaku!!

Fantastique! Tu viens de diviser mon temps de travail par 5!

Merci à vos réponses!
0