Makro ile sıralama

Katılım
14 Aralık 2004
Mesajlar
144
Arkadaşlar,elimde kuruma üyelerin yakınlarına verilmiş,giriş kartları mevcut, fakat bunların sıra numaraları(12/3, 347/5, 146/1,714/6, 1/2) şeklinde tabloyu P sütununa göre küçükten büyüğe ve büyükten küçüğe sıralamak için nasıl bir makro yazılabilir. Burada en küçük 1/2 enbüyük ise 714/6 olarak görünecek.
 

mehmett

Altın Üye
Katılım
18 Mayıs 2005
Mesajlar
2,571
Excel Vers. ve Dili
Excel 2010 Türkçe
Makro Kaydet yöntemi ile elde ettiğim kod şöyle;

(Sıralanacak verilerin A1:A5 aralığında olduğunu varsayıyoruz.)

[vb:1:b4c030d81f]Sub Sırala()
Range("A1:A5").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End Sub[/vb:1:b4c030d81f]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin. Bu tip yazım şeklinde normal sıralama fonksiyonu ile doğru sonuç alınamayacaktır. Bu sebeple tüm kart noların karakter uzunluğu eşit olmalıdır. Ã?rneğin; 16/1 yerine 016/1 yazın, yine 3/5 yerine 003/5 yazılmalıdır.

[vb:1:50577f5fbf]Sub sirala()
For a = 3 To [p65536].End(3).Row
If Len(Cells(a, "p")) = 4 Then Cells(a, "p") = "0" & Cells(a, "p")
If Len(Cells(a, "p")) = 3 Then Cells(a, "p") = "00" & Cells(a, "p")
Next
Range("A3:P" & [p65536].End(3).Row).Sort Key1:=[p3]
End Sub
[/vb:1:50577f5fbf]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yukarıdaki kodda küçük bir değişiklik yaptım tekrar deneyin.
 
Katılım
14 Aralık 2004
Mesajlar
144
Teşekkür ederim Sayın Leventm son değişiklik işime yaradı.
 
Üst