Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RESOLU] Sans doublon trié suivant 2 colonnes

Ternoise

XLDnaute Occasionnel
Bonjour
Encore besoin de votre aide !

Avec ce code, ma Listbox se remplie des éléments de la colonne H (sans doublon et trié).
J'aimerais ajouter la colonne J à cette liste

J'avais imaginé ceci !!
HTML:
  For Each c In f.Range("H2:H", "J2:J" & f.[A65000].End(xlUp).Row)

Comment faire ?
Merci de votre aide
David

HTML:
Private Sub Charger_Liste1()
  Set f = Sheets("BDPMT")
  Set Mondico = CreateObject("Scripting.Dictionary")
  For Each c In f.Range("H2:H" & f.[A65000].End(xlUp).Row)
    Mondico(c.Value) = ""
  Next c
  temp = Mondico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.Liste1.List = temp
End Sub

Sub Tri(a, gauc, droi)
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
      If g <= d Then
        temp = a(g): a(g) = a(d): a(d) = temp
        g = g + 1: d = d - 1
      End If
    Loop While g <= d
    If g < droi Then Call Tri(a, g, droi)
    If gauc < d Then Call Tri(a, gauc, d)
End Sub
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Sans doublon trié suivant 2 colonnes

voir exemple en PJ

Le nom est en colonne A et le prénom en colonne C

Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  a = f.Range("A2:E" & f.[A65000].End(xlUp).Row).Value
  Set d = CreateObject("Scripting.Dictionary")
  Dim Tbl(1 To 2)
  For i = 1 To UBound(a)
    Tbl(1) = a(i, 1)
    Tbl(2) = a(i, 3)
    d(a(i, 1) & a(i, 3)) = Tbl
  Next i
  Dim b(): ReDim b(1 To d.Count, 1 To 2)
  i = 0
  For Each c In d.keys
      i = i + 1
      b(i, 1) = d(c)(1)
      b(i, 2) = d(c)(2)
  Next c
  Call Tri(b, 1, LBound(b), UBound(b))
  Me.ComboBox1.List = b
End Sub

JB
 

Pièces jointes

  • Copie de FormCascadeSansDoublons2colonnesTrie-3.xls
    71.5 KB · Affichages: 38
Dernière édition:

david84

XLDnaute Barbatruc
Re : Sans doublon trié suivant 2 colonnes

Re, bonsoir Jacques,

un exemple avec Union :
Code:
Private Sub Charger_Liste1()  
  Set f = Sheets("BDPMT")  
  Set Pl = Application.Union(Range("H2:H" & f.[H65000].End(xlUp).Row), Range("J2:J" & f.[J65000].End(xlUp).Row))
  Set Mondico = CreateObject("Scripting.Dictionary")

  For Each c In Pl.Areas
    For i = 1 To c.Cells.Count
      If c.Cells(i, 1).Value <> "" Then Mondico(c.Cells(i, 1).Value) = ""
    Next i
  Next c

  temp = Mondico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.Liste1.List = temp
End Sub
A+
 
Dernière édition:

Ternoise

XLDnaute Occasionnel
Re : Sans doublon trié suivant 2 colonnes

Re et merci à tous

Je pense que ce n'est pas la même chose.
En gros, j'aimerais rassembler dans une Listbox les données des colonnes H et J, enlever les doublons et les blancs et trié par ordre
Ci joint fichier
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Sans doublon trié suivant 2 colonnes

Il y avait ça

Listes Triées

Code:
Private Sub Charger_Liste1()
  Set f = Sheets("BDPMT")
  a = f.Range("H2:H" & f.[H65000].End(xlUp).Row)
  b = f.Range("J2:J" & f.[J65000].End(xlUp).Row)
  Me.Liste1.List = Fusion(a, b)
End Sub

S'il y a 3 colonnes

Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  a = f.Range("A2:A" & f.[A65000].End(xlUp).Row)
  b = f.Range("E2:E" & f.[E65000].End(xlUp).Row)
  c = f.Range("k2:E" & f.[k65000].End(xlUp).Row)
  Me.ComboBox1.List = Fusion(Fusion(a, b), c)
End Sub

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormFusionTrie.xls

JB
 

Pièces jointes

  • Copie de Classeur1-1.xlsm
    57.3 KB · Affichages: 35
  • Copie de Classeur1-1.xlsm
    57.3 KB · Affichages: 38
Dernière édition:

Ternoise

XLDnaute Occasionnel
Re : Sans doublon trié suivant 2 colonnes

Merci à vous 2

David84, ca marche nickel. Merci

En effet Mr Boisgontier, la solution était bien là et pourtant j'ai parcouru le site.
Je vais changer de lunettes !

Je profite de ce fil puisque c'est le même fichier pour vous demander sur quelle piste je dois me lancer pour compter le nombre d’occurrence par rapport à 3 critères.

Encore merci au forum
David
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…