Tri

Bonjour a tous,

Voila j'ai un tableau avec une liste de personne

Seulement il y a des doublons., c'est a dire plusieurs personnes qui ont le même nom.

J'ai réussi a faire un tri en supprimant les doublons des noms et le classé par ordre alphabétique.

Mais j'aimerais qu'a coté des nom les prénoms s'y trouve (1 par cellule). et la je bloque.

Si quelqu'un peut me conseiller pour faire cette démarche cela serait sympa.

PS: Je joins mon fichier

10test-tri1.xlsm (20.80 Ko)

Bonjour,

Sub SansDoublonsTrie()
Dim MonDico As Object
Dim c As Range

Set MonDico = CreateObject("Scripting.Dictionary")
With Worksheets("listing")
    .Columns("E:F").ClearContents
    For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
        If Not MonDico.exists(Trim(c.Value) & "|" & Trim(c.Offset(, 1).Value)) Then MonDico.Add Trim(Trim(c.Value) & "|" & Trim(c.Offset(, 1).Value)), Trim(c.Value) & "|" & Trim(c.Offset(, 1).Value)
    Next c
    With .Range("E2").Resize(MonDico.Count, 1)
        .Value = Application.Transpose(MonDico.keys)
        .Sort Key1:=Worksheets("listing").Range("E2"), Order1:=xlAscending, Header:=xlNo
    End With
    .Columns("E").Select
    Selection.TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="|", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    .Range("E1").Select
End With

Set MonDico = Nothing

End Sub
2test-tri1.xlsm (24.42 Ko)

bonjour,

bonjour Steelson,

une autre proposition

Sub sansdoublonstrie()
    With Sheets("listing")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To dl
            .Cells(i, 1) = Trim(.Cells(i, 1))
        Next i
        .Range("A1").Resize(dl, 2).Sort key1:=.Range("A1"), order1:=xlAscending, key2:=.Range("B1"), order2:=xlAscending, Header:=xlYes
        lr = 1
        nomencours = ""
        For i = 2 To dl
            If .Cells(i, 1) <> nomencours Then
                lr = lr + 1
                col = 5
                nomencours = .Cells(i, 1)
                .Cells(lr, col) = nomencours
            End If
            col = col + 1
            .Cells(lr, col) = .Cells(i, 2)
        Next i
    End With
End Sub

Merci Steelson, mais il reste les doublons

Merci h2S04, c'est nickel comme ça....

Merci Steelson, mais il reste les doublons

Non !!

capture d ecran 319

Regarde s'il n'y a pas des espaces inutiles peut-être ...

Bonjour

@Steelson,

j'ai compris que Damsa17 souhaitait regrouper tous les prénoms d'un même nom sur la même ligne à raison d'un prénom par colonne.

Ah ok

Ben vu comme ça en effet (mais quel est l'intérêt ?)

Petite question est il possible de faire cette demarche, mais le tri serait sur une autre page ("Données")?

Bonjour,

2 propositions à étudier.

Pas de VBA, mais des requêtes Power Query (intégré à Excel 2016).

Cdlt.

13test-tri1.xlsx (35.10 Ko)

Bonjour,

2 propositions à étudier.

Pas de VBA, mais des requêtes Power Query (intégré à Excel 2016).

Cdlt.

Test tri1.xlsx

Merci a toi, mais je préfère avec du VBA.

Re,

Bonjour à tous,

C'est ton choix !...

Tu as donc la solution de h2so4 qui répond à ta question.

Cdlt.

Rechercher des sujets similaires à "tri"