CONCATENER

Bonjour,
j'ai 2 colonnes A et B

A B C
hitr oc102
hitr oc104
hitr oc105
hitr oc106
alia dr024
alia dr026
micr fu204
micr sr202
Je souhaite concatener l'ensemble des cellules de la colonnes B qui ont pour valeur hitr dans la colonne A dans une
seule cellule d'une colonne c et ainsi de suite....les cellules de la colonne B ayant pour valeur alia dasn la colonne A...
Merci de votre aide

Ago
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Je n'ai rien compris !

    Peux-tu remplir à la main un fichier exemple, pour qu'on puisse voir ce que tu voudrais obtenir automatiquement ?

    Tu ouvres https://www.cjoint.com/ tu crées le lien, tu autorises l'accès, tu reviens dans ton message CCM et tu fais COLLER.
    1. Bonjour

      Les cellules de la colonne A ayant la même valeur sont-elles toujours groupées (comme dans ton exemple) ou bien peuvent-elles être mélangées aux autres.

      comme ça par exemple :
      hitr oc102
      hitr oc105
      hitr oc106
      alia dr026
      micr fu204
      micr sr202
      hitr oc104
      alia dr024
      1. elles sont d'aboird groupées par tri
    2. Contributeur
      Bonjour à tous

      Concatener une matrice n'existe pas de base dans Excel. dans une macro complémentaire, MoreFunc, elle existe, mais charger une macro complementaire de X fonctions pour en utiliser une seule.....

      Voici une fonction personnalisée à placer dans un module standard
      Function Matrice_Concatener(valeur As Variant, Optional separator As String = "", Optional vide As Boolean = False) As String
          Dim c As Variant
          Application.Volatile
          For Each c In valeur
              If vide = False Then
                  If c > "" Then
                      Matrice_Concatener = Matrice_Concatener & c
                      If separator > "" Then Matrice_Concatener = Matrice_Concatener & separator
                  End If
              Else
                  Matrice_Concatener = Matrice_Concatener & c
                  If separator > "" Then Matrice_Concatener = Matrice_Concatener & separator
              End If
          Next
          If separator > "" Then Matrice_Concatener = Left(Matrice_Concatener, Len(Matrice_Concatener) - Len(separator))
      End Function

      tu peux telecharger ce Fichier Exemples

      utilisation : Matrice_concatener(MaPlage;[Separateur];[vides])
      MaPlage : le plage à concatener
      Separateur : Le caractere de separation que tu desires
      Vides : Mettre Vrai si tu desire aussi prendre les valeurs vides

      Dans ton cas : le formule matricielle sera :
      =Matrice_concatener(si(A1:A10="hitr";B1:B10;"");"-")

      Formule matricielle à valider avec Ctrl + Maj + Entrée

      1. Merci beaucoup pour cette fonction qui m'a ete tres tres utile ! :)
    3. Bonjour,

      Si les colonnes sont triées, il suffit de mettre =A1 & " " & B1 en C1 et tirer jusqu'en bas (croix en bas à droite de la cellule) ...

      ;o)
      1. Contributeur
        Je n'ai pas bien compris le problème posé, mais au moins je suis sûr que ta proposition n'y correspond pas ! Attendons des précisions.
    4. La concaténation dans la colonne C doit-elle se faire sur la première, la dernière ou bien sur chacune des cellules ou la valeur de la colonne A est identique ?
      1. Contributeur
        Bonjour à tous

        si j'ai bien compris le probleme, il faut concatener un nombre indéfini de valeurs de la colonne B en fonction de la valeur de la colonne A

        or comme je l'ai dit dans le post 4, il est impossible d'utiliser Concatener pour une matrice meme en formule matricielle, venant de faire l'essai sur 2007, c'est toujours impossible.

        Laurent LONGRE a écrit une Bibliotheque de 67 fonctions supplémentaires contenant entre autre une fonction de concaténation de matrice.
        N'étant pas très pour l'adjonction de 67 fonctions pour n'en utiliser qu'une seule alors qu'il faut aussi ne pas oublier, en cas d'exportation de l'application, le chargement de cette bibliothèque, j'ai donc proposé ma fonction perso qui permet de concaténer des matrices, avec la formule qui va avec.

        Voici un autre exemple de concatenation de matrice, mais c'est beaucoup plus compliqué qu'avec une fonction personnalisée
        1. On peut aussi faire tout simple :

          Le tableau commençant en A1
          On écrit en C1 :
          =B1

          On écrit en C2 :
          =SI(A2=A1;CONCATENER(C1&B2);B2)

          On copie C2 jusqu'à la fin de la colonne C

          On peut faire disparaitre les concaténations intermédiaires pour ne voir que la dernière
          par la mise en forme conditionnelle.

          Soit pour C1 :
          'La formule est'
          =A1=A1
          (ne pas laisser les $ en cas de sélection par clic)

          A recopier jusqu'en bas de la colonne C.