Vba'da tarihe göre sıralama (örneklerle)
Satırları tarihe göre sıralamak için VBA’da aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub SortByDate()
Range(" A1:C10 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, Header:=xlYes
End Sub
Bu özel örnek , A1:C10 aralığındaki satırları, A sütunundaki tarihlere göre en eskiden en yeniye doğru sıralar.
Satırları tarihe göre en yeniden en eskiye doğru sıralamak istiyorsanız bunun yerine Order1:=xlDescending seçeneğini belirleyebilirsiniz.
Header:=xlYes’in ilk satırın başlık satırı olarak değerlendirilmesi gerektiğini belirttiğini unutmayın.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA kullanarak tarihe göre sıralama
Diyelim ki Excel’de bir mağazadaki farklı tarihlerdeki satışlar ve iadeler hakkında bilgi içeren aşağıdaki veri kümesine sahibiz:
Diyelim ki satırları tarihe göre, eskiden yeniye doğru sıralamak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub SortByDate()
Range(" A1:C10 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, Header:=xlYes
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Satırların artık en eskiden en yeni tarihe doğru tarihe göre sıralandığını unutmayın.
Satırları tarihe göre en yeniden en eskiye doğru sıralamak için Order1:=xlDescending : belirtebiliriz:
Sub SortByDate()
Range(" A1:C10 ").Sort Key1:=Range(" A1 "), Order1:=xlDescending, Header:=xlYes
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Satırların artık tarihe göre en yeniden en eskiye doğru sıralandığını unutmayın.
Not #1 : Bu örnekte tek sütuna göre sıralama yaptık. Ancak birden çok sütunda sıralama yapmak için daha fazla anahtar belirleyebilirsiniz.
Not #2 : VBA sıralama yönteminin tam belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Bir sayfayı birden çok sütuna göre sıralama
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: bir sütunun nasıl filtreleneceği