ComboBox a benzersiz alfabetik sıralama

umitumit

Altın Üye
Katılım
5 Eylül 2006
Mesajlar
364
Excel Vers. ve Dili
Excel 2016
Türkçe
Altın Üyelik Bitiş Tarihi
13-07-2028
Sn Korhan AYHAN,

İlginiz ve cevabınız için teşekkür ederim.
Problemim çözülmüş oldu.
 
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Altın Üyelik Bitiş Tarihi
08/06/2018
Aşağıdaki gibi deneyiniz.

Kod bende çalıştı. Sadece sayısal sıralama olayını düzelttim.

Kod:
]

Korhan Hocam,

"veri" isimli sayfamın A1:A20 satırlarından Combobox1'e aldığım değerler bu kod ile alfabetik sıralanmıyor, sayfa ismi, Combobox ismi, hücre adresi gibi değerleri değiştirdim. Aşağıdaki gibi yani.

[CODE]Private Sub ComboBox1_Enter()
    Dim a As Variant, hcr As Range, i As Long, j As Long, x As Variant, pk As Worksheet
    
    ComboBox1.Clear
    Set pk = Sheets("veri")
    
    With CreateObject("Scripting.Dictionary")
        .comparemode = vbTextCompare
        For Each hcr In pk.Range("a2:a" & pk.Cells(20, "a").End(xlUp).Row)
            If Not .exists(hcr.Value) Then
                .Add hcr.Value, Nothing
            End If
        Next hcr
        a = .keys
    End With
    
    For i = LBound(a) To UBound(a) - 1
        For j = i + 1 To UBound(a)
            If a(i) > a(j) Then
                x = a(j)
                a(j) = a(i)
                a(i) = x
            End If
        Next j
    Next i
    
    On Error Resume Next
    ComboBox1.List = a
    ComboBox1.ListIndex = 0
End Sub
 
Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Altın Üyelik Bitiş Tarihi
08/06/2018
Selamlar,

Alternatif olarak ekteki örnek dosyayı incelermisiniz.

Kod:
Option Explicit
 
Private Sub UserForm_Initialize()
    Dim X As Long
    Columns(256).Clear
    Columns(1).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("IV1"), Unique:=True
    Columns(256).Sort Key1:=Range("IV1"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    For X = 2 To [IV65536].End(3).Row
    ComboBox1.AddItem Cells(X, 256)
    Next
    Columns(256).Clear
End Sub

Korhan Hocam,

Sizden aldığım kodlar ile çalışmamda hep nokta atışı yapıyorum.
İyi ki varsınız.

Selam ve saygılarımla.
 
Üst