Concatination de cellules ayant meme

sablito12 Messages postés 1 Statut Membre -  
 sablito12 -
Bonjour,
je voudrais concaténer des cellules ayant même code en suppriment les doublons par exemple :

A B résultat : A B
x rt résultat : x rt-xv
x xv résultat :
y zz résultat : y zz-yyy
y yyy résultat :
z 11 résultat : z 11

mercie d'avance à m'aider
Configuration: Windows XP
Firefox 3.0.1

4 réponses

  1. arrial Messages postés 1803 Date d'inscription   Statut Membre Dernière intervention   251
     
     

              A                B               C

    1        NOM           Prénom      Prénom NOM

    2        DUGLAND    Alfred         Alfred DUGLAND

    3

    4

    Pour afficher       Alfred DUGLAND        en C2,

    tu tapes :           C2 = B2&" "&A2

    et ça devrait le faire …

     
    0
    1. sablito12
       
      merci de votre information, mais c'est pas ça exactement l'objectif :

      la concatination des cellules automatiquement suivant un macro ayant des memes codes (voir et analyser bien mon exp SVP)
      0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    votre question est incomplète
    La solution dépend:
    1°) de la partie du code qui peut être identique, est elle toujours en début ou pas?
    2°)... et surtout de la façon dont vous posez la question qui se doit d'être le plus explicite possible, comme par exemple et entre autres préciser si dans votre tableau les cellules à analyser sont connexes sur la même ligne et si les codes comportent un nombre de caractères identiques
    Si l'on se fie à votre exemple, pour info:
    sien A1:x rt et en B1 x rv
    avec la formule en C1
    =SI(GAUCHE(A1;1)=GAUCHE(B1;1);A1&" "&DROITE(B1;2);A1)
    on obtient en C1: x rt rv si le 1° caractère est identique, sinon ce qu'il y a en A1
    mais ceci est limité à la position des carcatères identiques ou a reporter sur deux cellules contigües.
    (Soit premier caractère identique ou non)
    Tous les codes avec même nombre de caractères (soit le premier à comparer et les deux autres à prendre en compte.)
    Crdlmnt
    0
    1. sablito12
       
      Merci pour l'info.
      mais mon exemple est définie et explicite à ce que je voudrais avoir
      j'explique encore suivant le premier exemple:
      avec A et B sont des colonnes
      X, Y, Z sont des codes qui peuvent comporter 10 caracteres
      la 1er ligne comporte A1 : X , B1 : "rt"
      la 2eme ligne compote A2 : X, B2 : "xv"
      mon but ici est de regrouper A1 et A2 en une seule Cellule et concatiner B1 avec B2 (cad avoir en B1 "rt-xv")
      exemple 1:
      A B résultat : A B

      x rt résultat : x rt-xv
      x xv résultat :
      y zz résultat : y zz-yyy
      y yyy résultat :
      z 11 résultat : z 11
      j'espere que c'est clair
      merci de votre effort
      0
  3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re
    j'espere que c'est clair

    Non pas pour moi,(mais je ne suis pas doué) surtout après la 2° ligne et aussi ce qui se passe en B1 s'il y a déja rt!?
    je pense que la mise à disposition d'un fichier exemple s'impose. !
    Crdlmnt

    0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour à tous

    tes codes en colonne A
    tes donn"ées (rt,cv, toto) en colonne B
    les résultats en colonne c
    le tout commence ligne 2 (étiquettes en ligne 1), la concaténation est inscrite sur la Ligne de la 1° occurence d'un code

    essaies cette petite macro:
    Option Explicit
    
    Sub concatener()
    Dim coll As Collection, code As String
    Dim texto As String
    Dim derlig As Long, lig As Long, cptr As Long
    Dim cellule As Range
    
    Range("C2:C65000").ClearContents
    derlig = Range("A65536").End(xlUp).Row
    Set coll = New Collection
    
    For cptr = 2 To derlig
        On Error Resume Next
            coll.Add Cells(cptr, 1).Value, CStr(Cells(cptr, 1).Value)
        On Error GoTo 0
    Next
    For cptr = 1 To coll.Count
        code = coll(cptr)
        texto = code
        For Each cellule In Range("A1:A" & derlig)
            If cellule = code Then
                texto = texto & "-" & cellule.Offset(0, 1)
            End If
        Next
        lig = Columns(1).Find(code, Range("A1")).Row
        Cells(lig, 3) = texto
     Next
     Set coll = Nothing
    End Sub

    0
    1. sablito12
       
      bonjour michel
      merci pour votre macro ca marcha tres bien mais reste une petite chose comment meme je voulais la concatination de la colonnes B uniquement en supprimant les doublons (lignes) des codes du colonnes A
      merci encore une fois
      0
      1. sablito12 > sablito12
         
        Bonjour à toute et à tous
        Malheureusement je n'est pas trouvé une solution sur Excel. pour cela j'ai cherché autrement la solution en exploitant mon idée dans Accession 2003 pour y arrivé en appliquant une petite requete ce concatination apres avoir importer mon fichier Excel sous Access, et voila ca marche ....
        la requete est comme suit :
        UPDATE table_compo INNER JOIN classeur_t ON table_compo.Code = classeur_t.Code SET table_compo.repèresSchéma = IIf(table_compo.repèresSchéma="","-",table_compo.repèresSchéma) & classeur_t.emplacement & "-"
        WHERE (((classeur_t.Emplacement)<>""));
        
        0