DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Worksheet_Activate()
Dim sh As Worksheet, ss As Long, a As Range, b As Range, c As Range, d As Range
Set sh = ActiveSheet
[COLOR="Red"][B]If sh.FilterMode Then sh.ShowAllData[/B][/COLOR]
ss = sh.Range("A:K").Find("*", , , , xlByRows, xlPrevious).Row
Set a = sh.Range("A1")
Set b = sh.Range("B1")
Set c = sh.Range("C1")
Set d = sh.Range("D1")
On Error Resume Next
sh.Range("A1:K" & ss).Sort _
key1:=a, order1:=xlAscending, _
key2:=b, order2:=xlAscending, _
key3:=c, order3:=xlAscending, _
Header:=xlGuess, _
ordercustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
dataoption1:=xlSortNormal, _
dataoption2:=xlSortNormal
End Sub
Dosyanızda ki sütunlar aynı kaldıkça sorun olmaz. Var olan verilere göre çoklu sıralama yapılır.
Mevcut durumda, sıralama kodları sayfa aktive olunca otomatik harekete geçiyor. Bu durum sizin için kullanışlı değilse, Sub Sheets.....Activate.. altındaki kodları kesip, Modül içinde (örneğin Sub SIRALAMA_YAPTIR) yazdıkdan sonra bu satırla "End Sub" arasında kalan yere yapıştırın ve bir düğme oluşturarak, sağ tıklayın, makro ata, açılan listeden son isimlendirdiğiniz kodları seçin.
Bu durumda kodlar sizden habersiz, isteğiniz dışında belirtilen şekilde sıralanmaz.
3 Nolu Mesajımda güncelleme yaptım, (kırmızı-bold kısım) sonucu gözlemleyiniz.