• DİKKAT

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

Hücrede Seçilen Kritere Göre Verileri Sıralatma

Kodunuzda ilave ve düzeltme yaptım. Bu şekilde istediğiniz gibi çalışıyor. :)
Match fonksiyonu ile sıralama yapılacak sütunun numarasını sut değişkenine atadım.
Daha sonra sıralama keyi olarak ilgili sutun numarasına göre atama yaptırdım.

Rich (BB code):
Sub SIRALAT()
    sut = WorksheetFunction.Match(Sheets(1).Range("J1"), Sheets(1).Range("A1:D1"), 0)
    Range("A2:D6").Select
    ActiveWorkbook.Worksheets("DATA").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("DATA").Sort.SortFields.Add Key:=Cells(1, sut), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("DATA").Sort
        .SetRange Range("A1:D6")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("E1").Select
End Sub


EK : Aşağıdaki kodları Sheet1(DATA) kod sayfasına yapıştırırsanız. Butona gerek kalmadan seçim yaptığınız anda sıralama işlemi yapılır..

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 10 And Target.Row = 1 Then
    Call SIRALAT
End If

End Sub
 
Son düzenleme:
cengizdemir72 üstadım eline sağlık, kod harika çalışıyor. acaba şöyle bir düzenleme teknik olarak mümkün mü ?
Sıralamanın "xlDescending" mi, "xlAscending" mi olacağı da hücreden belirlemek mümkün olabilir mi ? örneğin J2 hücresinden !
 
Rica ederim. Sıralama seçimini de isteğinize göre ayarladım. Örnek Dosya ekte. İyi geceler ;)


Örnek Dosya
 
Geri
Üst