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

Katılım
24 Temmuz 2019
Mesajlar
476
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,974
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,515
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
 
Katılım
24 Temmuz 2019
Mesajlar
476
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.
 
Katılım
24 Temmuz 2019
Mesajlar
476
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.
 
Katılım
24 Temmuz 2019
Mesajlar
476
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.
 
Üst