Tersten Sıralama

Katılım
12 Kasım 2019
Mesajlar
1
Excel Vers. ve Dili
Türkçe
Arkadaşlar elimde bir isim listesi var. Bunları sıralamak istiyorum. Ama tersten. Yani ismin son harfinden başa doğru ilerleyerek alfabetik olarak. Mesela

Mehmet
Ahmet
Ganime
Kelami
Hüseyin
Rüveyda
Ceyda
Cemile
Ceylin
Elif

Böyle bir listeyi alttaki hale getirecek

Ceyda
Rüveyda
Cemile
Ganime
Elif
Kelami
Ceylin
Hüseyin
Ahmet
Mehmet


Bilmiyorum anlatabildim mi?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,270
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
İsimler A1:A10 aralığındaysa, aşağıdaki makro bunları B1:B10 aralığına dediğiniz gibi sıralar...

Kod:
Sub Test()
    'Haluk - 12/11/2019
    'sa4truss@gmail.com
    '
    Dim myArr() As String, i As Integer, NoA As Integer
    NoA = Range("A" & Rows.Count).End(xlUp).Row
    
    ReDim myArr(1 To NoA)
    
    For i = 1 To NoA
        myArr(i) = StrReverse(Range("A" & i))
    Next
    
    Set MyWd = CreateObject("Word.Application")
    MyWd.WordBasic.SortArray myArr()
    
    For i = 1 To NoA
        Range("B" & i) = StrReverse(myArr(i))
    Next
    
    Set MyWd = Nothing
End Sub
.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,091
Excel Vers. ve Dili
2007 Türkçe
Merhaba Ali Demirok,
Öncelikle foruma hoş geldiniz.
Listenizin A1:A10 arasında olduğunuzu varsayarsak boş bir modüle aşağıdaki makro kodunu kopyalayarak istediğinizi yapabilirsiniz.
Modül ekleme için şuraya bakabilirsiniz...
Rich (BB code):
Option Compare Text
Sub kod()
Set alan = Range("A1:A10")
dz = alan
For a = LBound(dz) To UBound(dz) - 1
    For b = a + 1 To UBound(dz)
        If StrReverse(dz(a, 1)) > StrReverse(dz(b, 1)) Then
            x = dz(a, 1)
            dz(a, 1) = dz(b, 1)
            dz(b, 1) = x
        End If
    Next
Next
alan.Value = dz
End Sub
 
Üst