• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Dizilerde fonksiyon ve sıralama

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
1,080
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.
 
Şunun yerine;

LBound(Dizim, 1)

1 yazıp deneyiniz.
 
Geri
Üst