• DİKKAT

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

Sıralama

  • Konbuyu başlatan Konbuyu başlatan magnesia
  • Başlangıç tarihi Başlangıç tarihi

magnesia

Yasaklı üye
Katılım
1 Ocak 2018
Mesajlar
351
Excel Vers. ve Dili
Excel 2010 Türkçe
Arkadaşlar selam.
Ekteki dosyada "SIRALA" butonuna bastığımda bir InputBox açılıp ("Sıralanacak Sütun Adını Girin.") diye sormasını istiyorum.
Bu inputbox'a "B" ya da "G" yazacağım.
B sütununu seçersem A'dan Z'ye sıralamasını,
G sütununu seçersem BÜYÜKTEN KÜÇÜĞE doğru sıralamasını istiyorum.

Umarım anlatabilmişimdir.
Şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba,

Kısa yoldan işi halledelim ne dersiniz?

İmleç hangi sütunda bulunursa o sütuna göre (tabi kontrol ederek, B yada G) sıralama yapar.

Kod:
Private Sub CommandButton1_Click()
    
    Dim i   As Long, _
        Kol As Integer, _
        Sat As Long
    
    If ActiveCell.Column = 2 Then
        i = 1
    ElseIf ActiveCell.Column = 7 Then
        i = 2
    Else
        MsgBox "İmleç B veya G sütununda  değil...", vbCritical
        Exit Sub
    End If
    
    Kol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
    Sat = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    
    Range(Cells(2, "A"), Cells(Sat, Kol)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=i
    
End Sub
 
Sayın Hocam.
Öncelikle ilginize ve emeğinize teşekkürler.
Ancak kodları yerleştirip verileri girdikten sonra SIRALA butonuna basınca tüm veriler sıralanıyor.
Acaba ben mi yanlış yapıyorum?
 
Hocam pardon.
Son anda fark ettim. Çok ilginç bir durum ortaya çıktı.

Sıralamayı yapıyor ama,
G sütununa göre sıralama yaptırırsak sıralamayı sayfanın en sonuna yapıyor,
B sütununa göre sıralama yaptırırsak doğru olarak sayfanın başından itibaren sıralıyor.
 
Merhaba,

G sütununda formül olduğu için son satır olarak en son satırı dikkate alıyor. 3-5 kişi olduğunda da sona atması doğal.
Kodlardaki son satırı B sütununa göre düzenledim. İnceleyiniz.
Kod:
Private Sub CommandButton1_Click()
    
    Dim i   As Long, _
        Kol As Integer, _
        Sat As Long
    
    If ActiveCell.Column = 2 Then
        i = 1
    ElseIf ActiveCell.Column = 7 Then
        i = 2
    Else
        MsgBox "İmleç B veya G sütununda  değil...", vbCritical
        Exit Sub
    End If
    
    Kol = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
'    Sat = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Sat = Cells(Rows.Count, "B").End(3).Row
    Range(Cells(2, "A"), Cells(Sat, Kol)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=i
    
End Sub
 
İşlem tamam..
Çok çok teşekkür ederim.
İlginize, bilginize ve emeğinize sağlık.
 
Son düzenleme:
Güle güle kullanınız.
 
Geri
Üst