Listboxta Birden fazla sütuna göre sıralama yapma

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
784
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Merhaba,

Aşağıdaki fonksiyon ile listboxlar üzerinde belirlenen sütuna göre sıralama yaptırılıyor, ama tek sütun. Bunu iki sütun için ya da birden fazla sütun için geliştirmek mümkün müdür?

ListBox1.List = Diz(ListBox1.List, 2) ' 2. Sütuna göre Sıralama Yapmakta

Kod:
Private Function Diz(ByVal Dizim As Variant, Stn As Integer) As Variant
    Dim i, j, k As Long
    Dim Tmp As Variant
    Stn = Stn - 1
    For i = LBound(Dizim, 1) To UBound(Dizim, 1)
        For j = i + 1 To UBound(Dizim, 1)
            If Dizim(i, Stn) > Dizim(j, Stn) Then
                For k = LBound(Dizim, 2) To UBound(Dizim, 2)
                    Tmp = Dizim(j, k)
                    Dizim(j, k) = Dizim(i, k)
                    Dizim(i, k) = Tmp
                Next
            End If
        Next
    Next
    Diz = Dizim
End Function
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,247
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
ListBox1.List = Diz(ListBox1.List, 2)
ListBox1.List = Diz(ListBox1.List, 3)
yada
Kod:
ListBox1.List = Diz(ListBox1.List, 3)
ListBox1.List = Diz(ListBox1.List, 2)
Şeklinde deneyiniz.
2. ve 3. sütunları sıralar.
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
784
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Merhaba.

Kod:
ListBox1.List = Diz(ListBox1.List, 2)
ListBox1.List = Diz(ListBox1.List, 3)
yada
Kod:
ListBox1.List = Diz(ListBox1.List, 3)
ListBox1.List = Diz(ListBox1.List, 2)
Şeklinde deneyiniz.
2. ve 3. sütunları sıralar.

Merhaba,

Bu halleri ile önce ilk ölçüte göre sıralıyor. Sonra ise ilk ölçüt sıralaması bozulup direk ikinci ölçüte göre sıralama yapıyor, yanlış anlamadıysam.

Örneğin 2 sütun Tarih, 3 sütun Fatura Numarası olsun. İkinci sıralamadan sonra Tarih sütunu karışıyor. Amacım ise önce Tarih, sonra Fatura No ya göre artan sıralı işlem yapabilmek.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,247
Excel Vers. ve Dili
2019 Türkçe
Olmasını istediğiniz sıralamayı örnek bir dosya ile gösterir misiniz?
İki sütun için sıralaması yapılmış bir tablo olsun.
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
784
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
2 sayfa verilerini karşılaştırmak amacı ile kullandığım bir excel. Örnek verilerde tutar sıralamalı. Olmasını istediğim ise 3 sayfada görünüyor.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,247
Excel Vers. ve Dili
2019 Türkçe
Açıklamayı anlayamadım.
Örnek sıralamayı hangi sayfada ve hangi sütunlarda yaptınız?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,648
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub CommandButton2_Click()
    If Kontrol Then
        Kontrol = False
        Exit Sub
    End If
    '*****************************************
    Firma_Ara_Logo
    ListBox1.List = Diz(ListBox1.List, 2, 3)   ' 2. Sütuna göre Sıralama Yapmakta

    Firma_Ara_Kademe
    ListBox2.List = Diz(ListBox2.List, 2, 3)
    '*****************************************

    If TextBox1 = "" Then
        TextBox2 = ""
        ListBox1.Clear
        ListBox2.Clear
    End If


    TextBox2 = ListBox1.ListCount
    TextBox3 = ListBox2.ListCount
    Call Topla_Logo
    Call Topla_Kademe
End Sub
Kod:
Private Function Diz(ByVal Dizim As Variant, Stn1 As Integer, Stn2 As Integer) As Variant
    Dim i, j, k As Long
    Dim Tmp As Variant
    Stn1 = Stn1 - 1
    Stn2 = Stn2 - 1
    For i = LBound(Dizim, 1) To UBound(Dizim, 1)
        For j = i + 1 To UBound(Dizim, 1)
            If Dizim(i, Stn1) & "|" & Dizim(i, Stn2) > Dizim(j, Stn1) & "|" & Dizim(j, Stn2) Then
                For k = LBound(Dizim, 2) To UBound(Dizim, 2)
                    Tmp = Dizim(j, k)
                    Dizim(j, k) = Dizim(i, k)
                    Dizim(i, k) = Tmp
                Next
            End If
        Next
    Next
    Diz = Dizim
End Function
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
784
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Açıklamayı anlayamadım.
Örnek sıralamayı hangi sayfada ve hangi sütunlarda yaptınız?
syn veyselemre konuyu anlamış ve cevaplamış, ayrıca teşekkürler ilgilendiğiniz için.
 
Üst