Dizilerde fonksiyon ve sıralama

walabi

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

excel 2013
Merhaba ,

Aşağıdaki bulduğum kodlar dizilerde bir fonksiyon ve eğer yanlış anlamadıysam sütun verilerinde sıralama yaptırmak amacıyla oluşturulmuş, ya da ben bu amaçla kullanıyorum. Dizilerin mantığını anlamadığım için şöylesi birşey sormam gerekti.

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
            If CDate(Dizim(i, Stn)) > CDate(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
Aşağıdaki tek satırlık kod ise hangi sütunda sıralama yapmak istediğimizi belirliyor anladığım kadarı ile ;

ListBox1.List = Diz(ListBox1.List, TextBox3.Value) burada textbox3.value yerine 1 yazarsam birinci sütunu 2 yazarsam ikinci sütunu sıralamakta.

Yapmayı istediğim ve sormaya çalıştığım şey ise şu;

Ben listboxa additem ile sütun başlığı alıyorum. Bu sebeple tarih sıralaması yaptırmak istediğimde hata alıyorum. Yanlış değilsem sütunun ilk verisi METİN ifade yani Tarih şeklinde bir ifade olduğu için hata alıyorum.

İlgili fonksiyonun ikinci satırdan itibaren sıralama yapmasını nasıl sağlayabilirim. Öncelikle mümkün müdür, mümkünse fonksiyonda nereyi düzeltmem gerekiyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,328
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şunun yerine;

LBound(Dizim, 1)

1 yazıp deneyiniz.
 
Üst