Soru Özel sıralama ve Makro Kaydet hakkında

lovecaroline

Altın Üye
Katılım
21 Mayıs 2014
Mesajlar
136
Excel Vers. ve Dili
2013 (64 Bit)
2010 (64 bit)
Altın Üyelik Bitiş Tarihi
07.06.2026
Merhaba değerli arkadaşlarım,
3 düzey özel sıralama yapıyorum ve bunu makro olarak kaydediyorum. Ama sadece kayıt ettiğim sayfada çalışıyor. Ben aktif sayfa hangisiyse orada sıralama yapsın istiyorum. Yardımcı olabilir misiniz. Teşekkürler.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,872
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Kodlarınızı ekleyin inceleyelim.
 

lovecaroline

Altın Üye
Katılım
21 Mayıs 2014
Mesajlar
136
Excel Vers. ve Dili
2013 (64 Bit)
2010 (64 bit)
Altın Üyelik Bitiş Tarihi
07.06.2026
merhaba, sayfa sayıları ve satır sayıları değişebilir. 3 düzey sıralama istiyorum. düzey sütunlarını belirttim. şimdiden çok teşekkürler.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,586
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod içindeki Worksheets("MAVİ") ifadelerini ActiveSheet olarak değiştiriniz.

Ya da en güzeli aşağıdaki kodu deneyiniz. Makro kaydet ile oluşan kodları biraz düzenledim.

C++:
Option Explicit

Sub Sirala()
    Dim Son As Long
    
    With ActiveSheet
        Son = .Cells(.Rows.Count, "C").End(3).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add .Range("AI9:AI" & Son), Order:=xlDescending
        .Sort.SortFields.Add .Range("AD9:AD" & Son), Order:=xlDescending
        .Sort.SortFields.Add .Range("AF9:AF" & Son), Order:=xlDescending
        .Sort.SetRange .Range("C9:AT" & Son)
        .Sort.Header = xlGuess
        .Sort.Apply
    End With
    
    MsgBox "Sıralama işlemi tamamlanmıştır.", vbInformation
End Sub
 

lovecaroline

Altın Üye
Katılım
21 Mayıs 2014
Mesajlar
136
Excel Vers. ve Dili
2013 (64 Bit)
2010 (64 bit)
Altın Üyelik Bitiş Tarihi
07.06.2026
Harika oldu. Teşekkürlerimi bir borç bilirim. Sizlerle aynı platformda olduğum için çok mutluyum.
 

lovecaroline

Altın Üye
Katılım
21 Mayıs 2014
Mesajlar
136
Excel Vers. ve Dili
2013 (64 Bit)
2010 (64 bit)
Altın Üyelik Bitiş Tarihi
07.06.2026
Kod içindeki Worksheets("MAVİ") ifadelerini ActiveSheet olarak değiştiriniz.

Ya da en güzeli aşağıdaki kodu deneyiniz. Makro kaydet ile oluşan kodları biraz düzenledim.

C++:
Option Explicit

Sub Sirala()
    Dim Son As Long
   
    With ActiveSheet
        Son = .Cells(.Rows.Count, "C").End(3).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add .Range("AI9:AI" & Son), Order:=xlDescending
        .Sort.SortFields.Add .Range("AD9:AD" & Son), Order:=xlDescending
        .Sort.SortFields.Add .Range("AF9:AF" & Son), Order:=xlDescending
        .Sort.SetRange .Range("C9:AT" & Son)
        .Sort.Header = xlGuess
        .Sort.Apply
    End With
   
    MsgBox "Sıralama işlemi tamamlanmıştır.", vbInformation
End Sub
İlginç bir şekilde sıralama yaptıktan sonra bazı satırların boyutunu 0(sıfır) yapıyor. Nedenini anlayamadım. Bir fikriniz var mı?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,586
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Başka bir makro buna sebep oluyor olabilir. Varsa kontrol ediniz.
 
Üst