alfabetik sıralama (türkçe karakterle başlayanlar sona)

Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
alfabetik sıralama yapmam lazım ama i ö ü ş ç ğ olan karakterleri son tarafta sıralatmak istiyorum. mümkünmüdür acaba.
 
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
ç,
ö,
ü,
i,
ş,
ğ,

eğer olursa sıralama bu şekilde olmalı mümkünse
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Makro ile istediğiniz sıralamayı yapabilirsiniz.
Örnek dosya olursa örnek kodlama yapılabilir.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub TEST()
    [S:S].Clear
    Range("S2:S" & Cells(Rows.Count, 1).End(3).Row).FormulaR1C1 = "=kodla(RC[-17])"
    Range("A:S").Sort [S2], xlAscending, , , , , , xlYes
    [S:S].Clear
End Sub

Function kodla(st As String) As String
    Dim al$, ekle%, i&
    For i = 1 To Len(st)
        al = Mid(st, i, 1)
        Select Case al
            Case "A" To "Z", " ": ekle = Asc(al)
            Case "Ç": ekle = 91
            Case "Ö": ekle = 92
            Case "Ü": ekle = 93
            Case "İ": ekle = 94
            Case "Ş": ekle = 95
            Case "Ğ": ekle = 96
        End Select
        kodla = kodla & ekle
    Next i
End Function
 
Son düzenleme:
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Veysel bey teşekkür ederim emeğinize sağlık çok makbule geçti.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
Alternatif olsun.
İyi çalışmalar...
Kod:
Sub kod()
Dim sira As String, met As String, m As String
Dim s As Integer
Dim dz As Variant
Dim a As Integer, b As Integer
sira = "ABCDEFGHIJKLMNOPQRSTUVWXYZÇÖÜİŞĞ0123456789 "

s = Cells(Rows.Count, "B").End(3).Row
dz = Range("B2:B" & s).Value
For a = LBound(dz) To UBound(dz)
    dz(a, 1) = UCase(Replace(Replace(dz(a, 1), "i", "İ"), "ı", "I"))
    For b = 1 To Len(dz(a, 1))
        m = InStr(1, sira, Mid(dz(a, 1), b, 1)) + 10
        met = met & m
    Next
    dz(a, 1) = CStr(met)
    met = ""
Next
Range("S:S").NumberFormat = "@"
Range("S2").Resize(UBound(dz)).Value = dz
Range("A2:S" & s).Sort Range("S2"), xlAscending
Range("S:S").ClearContents
End Sub
 
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
:) Çok teşekkürler hangisini kullanacağımı şaşırdım.
 
Üst