Ad Soyada göre Büyük Küçük Harf Değiştirme

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
470
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
İyi Akşamlar;

Dosyamda yapmak istediğim uygulamayı kısaca anlatmaya gayret ettim. Yardımcı olursanız çok memnun olurum. Selametle
 

Ekli dosyalar

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,929
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Bir Modül içine Kopyalayın.
Butona atayın

Kod:
Sub AdKucukSoyadBuyuk()
SonSat = Worksheets("Sayfa1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To SonSat
    Ad = ""
    Soyad = ""
    a = Split(Cells(i, "A"), " ")
    For j = 0 To UBound(a) - 1
                                    
        Ad = Trim(Ad & " " & a(j))
    Next j
 
    Soyad = Trim(a(UBound(a)))
    Ad = Evaluate("=PROPER(""" & Ad & """)")
    Soyad = Evaluate("=UPPER(""" & Soyad & """)")
    Cells(i, "A") = Ad & " " & Soyad
Next i
End Sub
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,125
Excel Vers. ve Dili
office2010
Alternatif olarak.

Kod:
Sub test()
    Sheets("sayfa1").Select
    son = Cells(Rows.Count, 1).End(xlUp).Row
    a = Range("A1:A" & son).Value
    ReDim b(1 To UBound(a), 1 To 2)
    For i = 1 To UBound(a)
        v = VBA.Trim(a(i, 1))
        s = InStrRev(v, " ")
        ad = Evaluate("=PROPER(""" & Left(v, s) & """)")
        soyad = Evaluate("=UPPER(""" & Mid(v, s + 1, Len(v)) & """)")
        b(i, 1) = ad & soyad
    Next i
    [A1].Resize(UBound(a), 2) = b
    MsgBox "İşlem tamam...", vbInformation
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,175
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bende hazırlamıştım. Farklı komut kullanımından dolayı paylaşmak istedim.

C++:
Option Explicit

Sub Ad_Soyad_Yazim_Duzeni()
    Dim Son As Long, X As Long, Veri As Variant
    Dim Ad As Variant, Soyad As String, Say As Long
    
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son < 2 Then Son = 2
    
    Veri = Range("A1:A" & Son).Value
    
    ReDim Liste(1 To UBound(Veri, 1), 1 To 1)
    
    For X = LBound(Veri, 1) To UBound(Veri, 1)
        Say = Say + 1
        If Veri(X, 1) <> "" Then
            Ad = Split(WorksheetFunction.Proper(Veri(X, 1)), " ")
            If UBound(Ad, 1) = 0 Then
                Liste(Say, 1) = Ad(0)
            Else
                Soyad = Ad(UBound(Ad, 1))
                ReDim Preserve Ad(0 To UBound(Ad, 1) - 1)
                Liste(Say, 1) = Join(Ad, " ") & " " & UCase(Replace(Replace(Soyad, "ı", "I"), "i", "İ"))
            End If
        End If
    Next
    
    Range("A1").Resize(UBound(Veri, 1)) = Liste
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
470
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
Alternatif olarak.

Kod:
Sub test()
    Sheets("sayfa1").Select
    son = Cells(Rows.Count, 1).End(xlUp).Row
    a = Range("A1:A" & son).Value
    ReDim b(1 To UBound(a), 1 To 2)
    For i = 1 To UBound(a)
        v = VBA.Trim(a(i, 1))
        s = InStrRev(v, " ")
        ad = Evaluate("=PROPER(""" & Left(v, s) & """)")
        soyad = Evaluate("=UPPER(""" & Mid(v, s + 1, Len(v)) & """)")
        b(i, 1) = ad & soyad
    Next i
    [A1].Resize(UBound(a), 2) = b
    MsgBox "İşlem tamam...", vbInformation
End Sub
Çok teşekkür ederim üstadım.
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
470
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
Bende hazırlamıştım. Farklı komut kullanımından dolayı paylaşmak istedim.

C++:
Option Explicit

Sub Ad_Soyad_Yazim_Duzeni()
    Dim Son As Long, X As Long, Veri As Variant
    Dim Ad As Variant, Soyad As String, Say As Long
   
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son < 2 Then Son = 2
   
    Veri = Range("A1:A" & Son).Value
   
    ReDim Liste(1 To UBound(Veri, 1), 1 To 1)
   
    For X = LBound(Veri, 1) To UBound(Veri, 1)
        Say = Say + 1
        If Veri(X, 1) <> "" Then
            Ad = Split(WorksheetFunction.Proper(Veri(X, 1)), " ")
            If UBound(Ad, 1) = 0 Then
                Liste(Say, 1) = Ad(0)
            Else
                Soyad = Ad(UBound(Ad, 1))
                ReDim Preserve Ad(0 To UBound(Ad, 1) - 1)
                Liste(Say, 1) = Join(Ad, " ") & " " & UCase(Replace(Replace(Soyad, "ı", "I"), "i", "İ"))
            End If
        End If
    Next
   
    Range("A1").Resize(UBound(Veri, 1)) = Liste
   
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Sayın @Korhan Ayhan üstadım size çok teşekkür ederim.
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
470
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
@Korhan Ayhan hocam bir şey daha sorabilir miyim. Liste farklı sütunlarda olabiliyor bazen. Bu durumda kodun hangi kısmında değişiklik yaparsam istediğim sütunda iş görür.
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
470
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
@Korhan Ayhan hocam bir şey daha sorabilir miyim. Liste farklı sütunlarda olabiliyor bazen. Bu durumda kodun hangi kısmında değişiklik yaparsam istediğim sütunda iş görür.
Çözdüm galiba. Tekrardan teşekkürler.
 
Üst