Listbox verileri alfabetik sıralama

Katılım
14 Ağustos 2011
Mesajlar
207
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,701
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
207
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
207
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,057
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
207
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,057
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
207
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,057
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
207
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,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanızda mdb dosyasına kayıt yapılması ile ilgili bir kod mevcut değil. Kodlar sadece mdb dosyasından veri okumakla ilgili. Bence kendinizi yeteri kadar geliştirmeden mdb dosyasına kayıt konusuna girmişsiniz. Bu epeyce ileri düzey bir konudur. Ben örnek olarak aşağıdaki linki incelemenizi öneririm.

http://www.excel.web.tr/f117/ado-sql-execute-ile-i-lemler-mdb-dosyasynda-t73689.html
 
Üst