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

4 réponses

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
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
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 447
 
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
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
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 447
 
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
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
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