Sayfada belli bir alanda sıralama işlemi

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,062
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Aşağıdaki kodda belli bir alanı sıralamak için Makro-kaydet yöntemiyle aşağıdaki kodu oluşturdum

burada belirlenen alanın (nRange);
seçim yapmadan ( nRange.Select) doğrudan N sütununa göre büyükten küçüğe doğru sıralama yapmak için nası bir düzenleme yapılabilir?
Birde makro-kaydet ile oluşturduğum için kod bir uzun geldi bana; daha nasıl kısaltılabilir?

ilginiz için şimdiden teşekkürler,

Kod:
Dim rw As Long

Dim nRange As Range

rw = 21

Set nRange = ActiveWorkbook.Worksheets("ANALIZ").Range("A12:N" & rw)
    nRange.Select
    
    Range("N" & rw).Activate
    
    ActiveWorkbook.Worksheets("ANALIZ").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("ANALIZ").Sort.SortFields.Add2 Key:=nRange _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
iyi günler, iyi çalışmalar.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,375
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

1. satırın başlık olduğu varsıyılarak, aşağıdaki kodları dener misiniz?

Kod:
Sub Sırala()

    Dim i   As Long
    
    i = Cells(Rows.Count, "N").End(3).Row
    
    Range("N2:N" & i).Sort Key1:=[N1], Order1:=2
    
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,062
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

1. satırın başlık olduğu varsıyılarak, aşağıdaki kodları dener misiniz?

Kod:
Sub Sırala()

    Dim i   As Long
   
    i = Cells(Rows.Count, "N").End(3).Row
   
    Range("N2:N" & i).Sort Key1:=[N1], Order1:=2
   
End Sub
Necdet hocam teşekkürler, yalnız burada sadece N sütununu sıralamayacak, N sütununu referans alarak "A:N" sütunları arasını sıralayacak
sıralama yapılacak alanı önceden tanımlıyoruz zaten;

rw=21
Set nRange = ActiveWorkbook.Worksheets("ANALIZ").Range("A12:N" & rw)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,329
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Sirala()
    Range("A12:N" & Cells(Rows.Count, 1).End(3).Row).Sort Range("N12"), Order1:=xlDescending, Header:=xlYes
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,062
Excel Vers. ve Dili
Office 2013 İngilizce
Deneyiniz.

C++:
Option Explicit

Sub Sirala()
    Range("A12:N" & Cells(Rows.Count, 1).End(3).Row).Sort Range("N12"), Order1:=xlDescending, Header:=xlYes
End Sub
Korhan hocam teşekkürler
Header:=xlNo

olarak tam istediğim gibi....
 
Üst