birde ayriyetten Ali DEMİR'in Ayşe ELMA'nın vb soyadından sonra gelen(') işaretinden sonra gelen yere soyadına uygun olarak in,nın,un ve şekilde küçük harflerle ek yazdırabilirmiyiz.
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Public Sub Düzelt()
For i = 2 To [A65536].End(3).Row
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 & """)")
SonKarakter = Right(Soyad, 1)
Select Case SonKarakter
Case "A", "I": Ek = "'nın"
Case "O", "U": Ek = "'nun"
Case "E", "İ": Ek = "'nin"
Case "Ö", "Ü": Ek = "'nün"
Case Else
SonKarakter = Left(Right(Soyad, 2), 1)
Select Case SonKarakter
Case "A": Ek = "'in"
Case "I": Ek = "'ın"
Case "O", "U": Ek = "'un"
Case "E", "İ": Ek = "'in"
Case "Ö", "Ü": Ek = "'ün"
Case Else
SonKarakter = Left(Right(Soyad, 3), 1)
Select Case SonKarakter
Case "A": Ek = "'ın"
Case "I": Ek = "'ın"
Case "O", "U": Ek = "'un"
Case "E", "İ": Ek = "'in"
Case "Ö", "Ü": Ek = "'ün"
End Select
End Select
End Select
Cells(i, "A") = Ad & " " & Soyad & Ek
Next i
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [[B][COLOR=red]H12[/COLOR][/B]]) Is Nothing Then Exit Sub
Sonuç = ""
Ad = ""
Soyad = ""
a = Split(Target, " ")
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 & """)")
SonKarakter = Right(Soyad, 1)
Select Case SonKarakter
Case "A", "I": Ek = "'nın"
Case "O", "U": Ek = "'nun"
Case "E", "İ": Ek = "'nin"
Case "Ö", "Ü": Ek = "'nün"
Case Else
SonKarakter = Left(Right(Soyad, 2), 1)
Select Case SonKarakter
Case "A": Ek = "'ın"
Case "I": Ek = "'ın"
Case "O", "U": Ek = "'un"
Case "E", "İ": Ek = "'in"
Case "Ö", "Ü": Ek = "'ün"
Case Else
SonKarakter = Left(Right(Soyad, 3), 1)
Select Case SonKarakter
Case "A": Ek = "'ın"
Case "I": Ek = "'ın"
Case "O", "U": Ek = "'un"
Case "E", "İ": Ek = "'in"
Case "Ö", "Ü": Ek = "'ün"
End Select
End Select
End Select
Application.EnableEvents = False
Sonuç = Ad & " " & Soyad & Ek
With Target
.Value = Sonuç
Application.EnableEvents = True
End With
Range("D:D").EntireColumn.AutoFit
Range("H:H").EntireColumn.AutoFit
Son:
End Sub
yazdığınız anda dönüştürülmesini istiyorsanız;
Private Sub Worksheet_Change(ByVal Target As Range)
Set IntersectRng = Application.Intersect(Target, Range("A:Z"))
If Not IntersectRng Is Nothing Then
Target = WorksheetFunction.Proper(Trim(Target))
z = StrReverse(Target)
x = InStr(1, z, " ")
If x > 0 Then
y = Mid(z, 1, InStr(1, z, " "))
For i = 1 To Len
c = c & WorksheetFunction.Proper(Mid(y, i, 1))
Next
Target = Mid(Target, 1, Len(Target) - x) & StrReverse(c)
End If
End
End If
Set IntersectRng = Nothing
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, Range("G1:G65000")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = WorksheetFunction.Proper(Target)
If InStr(1, Target, " ") > 0 Then
Veri_1 = Split(Target, " ")
Veri_2 = Replace(Target, Veri_1(UBound(Veri_1)), "")
Target = Veri_2 & UCase(Replace(Replace(Veri_1(UBound(Veri_1)), "ı", "I"), "i", "İ"))
End If
Son: Application.EnableEvents = True
End Sub