• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

İki İsimli olanların Soyadındaki TR hatası

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
975
Excel Vers. ve Dili
Excel-2003
AŞağıdaki kod adı normal soyadı büyük yapıyor ama 2 isimli olanların soyadında TR karakter hatası veriyor

Örnek isim: Şehriye Ali (AVCI) ismini Şehriye Ali (AVCİ) olarak değiştiriyor.Parantez olmasa sorun yok..
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, deg, deg2 As String
If Intersect(Target, [C1:c10000]) Is Nothing Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
Target.Value = WorksheetFunction.Proper(Target.Value)
deg = Split(Target.Value, " ")
For i = LBound(deg) To UBound(deg) - 1
    deg2 = deg2 & " " & deg(i)
Next
Target.Value = deg2 & " " & UCase(Replace(Replace(deg(UBound(deg)), "ı", "I"), "i", "İ"))
Target.Value = Right(Target.Value, Len(Target.Value) - 1)
Application.EnableEvents = True
End Sub
 
Son düzenleme:
Merhaba,

Ben 2007 sürümde denedim bir sorunla karşılaşmadım.
 
Bende de 2007 var ama öyle kaydediyor..Parantezleri koymazsam sorun yok..
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("C1:C10000")) Is Nothing Then Exit Sub

Application.EnableEvents = False

Target = Application.Proper(Left(Target, InStrRev(Target, " "))) & _
    UCase(Replace(Replace(Split(Target, " ")(UBound(Split(Target, " "))), _
    "ı", "I"), "i", "İ"))

Application.EnableEvents = True

End Sub
 
hücrede tek kelime olursa soyadı olarak kabul eder, 2 soyadı var ise en sonraki kelimeyi büyük harf yapar.
 
eklemeyi unutmuşum. ilk kod xl 2010'da çalışıyor. ben alternatif olarak daha sade bir kod ekledim.
 
Merhaba,

Alternatif olarak aşağıdaki kodu da kullanabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("C1:C5000")) 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
 
Sayın mancubus'un kodları ile oldu, teşekkürler.
Korhan bey, sizin kodda oldu ama elle (AVCİ) kelimesini İ harfini I yapıyorum, hücreyi çift tıklayıp çıktığımda yine İ yapıyor.
İlgilenen arkadaşlara teşekkür ederim.
 
Merhaba,

A1 hücresine aşağıdaki ifadeyi yazın.

şehriye ali (avcı)

B1 hücresine aşağıdaki formülü uygulayın.

Kod:
=YAZIM.DÜZENİ(A1)

B1 hücresinde çıkan sonucu buraya yazın.

Aynı işlemi aşağıdaki ifade içinde deneyin ve çıkan sonucu buraya yazın. İnceleyelim.

şehriye ali (avci)
 
Geri
Üst