Listbox verileri alfabetik sıralama

Katılım
14 Ağustos 2011
Mesajlar
212
Excel Vers. ve Dili
2019 TR
Altın Üyelik Bitiş Tarihi
18-07-2024
Kod:
Private Function Sirala(Liste As Variant)
Dim i As Integer, j As Integer, x As Variant
    For i = LBound(Liste) To UBound(Liste) - 1
        For j = i + 1 To UBound(Liste)
            If StrComp(Liste(i, 0), Liste(j, 0), vbTextCompare) = 1 Then
                x = Liste(j, 0)
                Liste(j, 0) = Liste(i, 0)
                Liste(i, 0) = x
            End If
        Next j
    Next i
    Sirala = Liste
End Function
Kod:
Private Sub UserForm_Initialize()
For i = 1 To 20
    ListBox2.AddItem Cells(i, 1).Value
Next i
Liste = ListBox2.List
ListBox2.List = Sirala(Liste)
End Sub
bu kodları kullanıyorum listbox alfabetik sıralamak için fakat sıralama yapmıyor alfabetik sıralam için nasıl bir değişiklik yapmam lazım.
 

Ekli dosyalar

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,757
Excel Vers. ve Dili
Excel 2019 Türkçe
Kodlar alıntıdır: http://www.xtremevbtalk.com/showthread.php?t=279869
Bir de aşağıdaki şekilde deneyin.
Kod:
Private Sub UserForm_Initialize()
    Dim vaItems As Variant
    Dim i As Long, j As Long
    Dim vTemp As Variant
    
    Me.ListBox1.AddItem "B"
    Me.ListBox1.AddItem "A"
    Me.ListBox1.AddItem "D"
    Me.ListBox1.AddItem "C"
    
    'Put the items in a variant array
    vaItems = Me.ListBox1.List
    
    'Steal code from John Walkenbach’s Excel Power Programming
    'with VBA to sort the array
    For i = LBound(vaItems, 1) To UBound(vaItems, 1) - 1
        For j = i + 1 To UBound(vaItems, 1)
            If vaItems(i, 0) > vaItems(j, 0) Then
                vTemp = vaItems(i, 0)
                vaItems(i, 0) = vaItems(j, 0)
                vaItems(j, 0) = vTemp
            End If
        Next j
    Next i
    
    'Clear the listbox
    Me.ListBox1.Clear
    
    'Add the sorted array back to the listbox
    For i = LBound(vaItems, 1) To UBound(vaItems, 1)
        Me.ListBox1.AddItem vaItems(i, 0)
    Next i
End Sub
 
Katılım
14 Ağustos 2011
Mesajlar
212
Excel Vers. ve Dili
2019 TR
Altın Üyelik Bitiş Tarihi
18-07-2024
sıralama yapmıyor değişen bir şey yok yinede ilginize teşekkür ederim.
 
Katılım
14 Ağustos 2011
Mesajlar
212
Excel Vers. ve Dili
2019 TR
Altın Üyelik Bitiş Tarihi
18-07-2024
Konu hala güncelliğini koruyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
userformun initialize olayındaki kodların doğru olduğundan eminmisiniz? Dosyanızda sadece yukarıda yazdığınız kodlar yok. Aşağıdaki ilave kodlar yukarıdaki kodları anlamsız kılar.

Kod:
Call baglan
Call yukle
 
Katılım
14 Ağustos 2011
Mesajlar
212
Excel Vers. ve Dili
2019 TR
Altın Üyelik Bitiş Tarihi
18-07-2024
Peki hocam anlamsız kılmaması için nasıl bir değişiklik yapmalıyım.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yapmak istediğiniz nedir? Listboxa Excel sayfasındaki verilerimi yoksa mdb veritabanındaki verilerimi yüklemek istiyorsunuz ?
 
Katılım
14 Ağustos 2011
Mesajlar
212
Excel Vers. ve Dili
2019 TR
Altın Üyelik Bitiş Tarihi
18-07-2024
Listbox'a mdb verileri yüklemek istiyorum hocam.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu durumda kodlarınızı aşağıdaki gibi düzenleyin.

Kod:
Private Sub UserForm_Initialize()
Call yukle
     TextBox3.Visible = False 'textbox gizler
       TextBox4.Visible = False 'textbox gizler
       Label6.Visible = False
       Label7.Visible = False
           CommandButton15.Visible = False
           CommandButton14.Visible = False
            TextBox1 = "" 'textbox temizler
End Sub

Sub yukle()
With ListBox2
.Clear
 Set con = CreateObject("adodb.connection")
con.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\Arsiv.mdb"
Set rs = con.Execute("select * from tablo1 [B][COLOR=red]order by 'konu adi'[/COLOR][/B]")
.Column = rs.GetRows
Label10.Caption = ListBox2.ListCount
End With
Set rs = Nothing: Set con = Nothing
End Sub
 
Katılım
14 Ağustos 2011
Mesajlar
212
Excel Vers. ve Dili
2019 TR
Altın Üyelik Bitiş Tarihi
18-07-2024
Bu verdiğiniz kodlarla hocam kayıt yapmıyor mdb ye.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Üst