Grouper un tableau dans une meme cellule

Résolu
clairede -  
 clairede -
Bonjour,

je suis un peu novice en excel.. et j'ai une question : j'ai un tableau avec une permière colonne avec du texte et l'autre colonne avec des chiffres. J'aimerai pouvoir grouper toutes ces donnés dans une meme cellule du genre :
grenache 450
syrah 250
mourvedre120

et ca donnerait dans une meme cellule : grenache (450) + syrah (250) + mourvèdre (120)

avez vous une solution pour moi svp???
je vous remercie d'avance!

2 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    bonjour,

    tu as la fonction concatener.
    Fais Insertion et insères cette fonction.

    =concatener(A1;" (";A2;" )")
    0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    2 solutions :

    Manuellement en utilisant la formule = CONCATENER :
    =CONCATENER(A1;" (";B1;") ";A2;" (";B2;") ";A3;" (";B3;")")
    ou plus simplement :
    =A1&" ("&B1&") "&A2&" ("&B2&") "&A3&" ("&B3&")")

    Ou par macro :
    Attention, il faut que les cellules soient placées dans 2 colonnes adjacentes, qu'il n'y ait pas de cellule vide et qu'à chaque texte corresponde un nombre...
    S'il existe ces possibilités, on peux les gérer... Tu dis!
    Code à insérer dans un module standard (ALT+F11 depuis la feuille excel puis Insertion/Module) :

    Sub regroupement()  
    Dim Plage As Range, Dest As Range, Cel As Range  
    Dim TabloStr() As String, TabloNbr() As String  
    Dim i As Integer  
    
        Set Plage = Application.InputBox("Sélectionnez la plage de cellule que vous voulez regrouper", "Sélection de cellules", Type:=8)  
            If Len(Plage.Address) < 5 Then  
                MsgBox "merci de sélectionner plus d'une cellule"  
                Exit Sub  
            End If  
            i = 0  
            For Each Cel In Plage  
                If IsNumeric(Cel.Value) Then  
                    ReDim Preserve TabloNbr(i)  
                    TabloNbr(i) = "(" & Cel.Value & ")"  
                    i = i + 1  
                End If  
            Next  
            i = 0  
            For Each Cel In Plage  
                If Not IsNumeric(Cel.Value) Then  
                    ReDim Preserve TabloStr(i)  
                    TabloStr(i) = Cel.Value  
                    i = i + 1  
                End If  
            Next  
        Set Dest = Application.InputBox("Sélectionnez la cellule de destination", "Sélection de cellules", Type:=8)  
            For i = 0 To UBound(TabloStr)  
                Dest.Value = Dest.Value & TabloStr(i) & " " & TabloNbr(i) & " "  
            Next  
            Dest.Value = Left(Dest.Value, Len(Dest.Value) - 1)  
        Set Plage = Nothing  
        Set Dest = Nothing  
    End Sub

    Cordialement,
    Franck P
    0
    1. clairede
       
      Merci beaucoup!! ca marche nickel!! (bon j'avoue j'ai fait la méthode manuelle, car j'ai possibilités d'avoir des cellules vides!
      encore merci!!
      0