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!

3 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  3. Neophy
     
    Merci pijaku!!

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

    Merci à vos réponses!
    0