Çözüldü Hücre İçindeki Ad Soyad'dan Soyadı Büyük Harf Yazma Sorunu hakkında.

Katılım
2 Aralık 2013
Mesajlar
401
Excel Vers. ve Dili
Microsoft Office Standard 2013-Türkçe
Merhaba Arkadaşlar,

Excel dosyasında aşağıdaki formülü kullanıyorum. İhtiyacım olan ise hücre içine Ad Soyad yazarken formülün çalışması.

Örnek:
Ahmet TEZCAN
Mehmet Yusuf BİRCAN

=YAZIM.DÜZENİ(SOLDAN(D2;BUL("*";YERİNEKOY(D2;" ";"*";UZUNLUK(D2)-UZUNLUK(YERİNEKOY(D2;" ";""))))-1))&" "&BÜYÜKHARF(SAĞDAN(D2;UZUNLUK(D2)-BUL("*";YERİNEKOY(D2;" ";"*";UZUNLUK(D2)-UZUNLUK(YERİNEKOY(D2;" ";""))))))
 
Katılım
6 Ekim 2006
Mesajlar
149
Excel Vers. ve Dili
2013
EĞERHATA(BÜYÜKHARF(KIRP(EĞERHATA(ORTAB(KIRP(ORTAB(KIRP(D2);MBUL(" ";D2);25));EĞERHATA(MBUL(" ";KIRP(ORTAB(KIRP(D2);MBUL(" ";D2);25)));"");25);KIRP(ORTAB(KIRP(D2);MBUL(" ";D2);25)))));"")
 
Katılım
2 Aralık 2013
Mesajlar
401
Excel Vers. ve Dili
Microsoft Office Standard 2013-Türkçe
Arkadaşlar,

Bir yanlış anlaşılma olduğunu düşünüyorum. İlk mesajımda yazılı olan formül başarılı olarak çalışıyor. İhtiyacım olan Hücre içine Ad Soyad yazdıktan sonra, diğer hücreye geçtiğimde formülün çalışması. Sanırım bu formül ile değil macro ile mümkün.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,803
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Dosyanıa yeni bir modüle ekleyin.
Eklediğiniz modüle aşağıdaki kodları kopyalayın.

Kod:
Public Function SoyadBüyük(AdıSoyadı As String) As String
    Application.EnableEvents = False
    Dim bak As Long
    Dim Soyad As String
    For bak = 1 To Len(AdıSoyadı)
        If Right(Left(AdıSoyadı, bak), 1) = " " Then
            Soyad = Right(AdıSoyadı, Len(AdıSoyadı) - bak)
        End If
    Next
    SoyadBüyük = Replace(AdıSoyadı, Soyad, UCase(Soyad))
    Application.EnableEvents = True
End Function
Excel sayfanızdan aşağıdaki şekilde formül şeklinde kullanabilirsiniz.

=SoyadBüyük(A1)
yada
=SoyadBüyük("Ahmet Kalkavan")
 
Katılım
2 Aralık 2013
Mesajlar
401
Excel Vers. ve Dili
Microsoft Office Standard 2013-Türkçe
Merhaba.
Dosyanıa yeni bir modüle ekleyin.
Eklediğiniz modüle aşağıdaki kodları kopyalayın.

Kod:
Public Function SoyadBüyük(AdıSoyadı As String) As String
    Application.EnableEvents = False
    Dim bak As Long
    Dim Soyad As String
    For bak = 1 To Len(AdıSoyadı)
        If Right(Left(AdıSoyadı, bak), 1) = " " Then
            Soyad = Right(AdıSoyadı, Len(AdıSoyadı) - bak)
        End If
    Next
    SoyadBüyük = Replace(AdıSoyadı, Soyad, UCase(Soyad))
    Application.EnableEvents = True
End Function
Excel sayfanızdan aşağıdaki şekilde formül şeklinde kullanabilirsiniz.

=SoyadBüyük(A1)
yada
=SoyadBüyük("Ahmet Kalkavan")

Sayın @dalgalikur

Sanırım kodu doğru yere ekleyemedim. Örnek dosyaya göz atar mısınız.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,803
Excel Vers. ve Dili
2019 Türkçe
Doğru yere kopyalamışsınız.

Herhangi bir hücrede yukarıda da belirttiğim şekillerden biri ile kullanabilirsiniz..

=SoyadBüyük(A1)
yada
=SoyadBüyük("Ahmet Kalkavan")
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,180
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp deneyiniz.
Soyadı büyük harfe çevirdiği gibi ek olarak koyu ve renk de verdirebilirsiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo Son
    If Intersect(Target, [D:D]) Is Nothing Or Target.Row < 2 Or Target.Value = "" Then Exit Sub
   
    Dim Ad As String, Soyad As String
    Dim Dizi() As String
    Dim i As Integer
   
    Dizi = Split(Target.Value, " ")
    For i = 0 To UBound(Dizi) - 1
        Ad = Trim(Ad & " " & Dizi(i))
    Next i
   
    Soyad = Trim(Dizi(UBound(Dizi)))
    Ad = Application.WorksheetFunction.Proper(Ad)
    Soyad = Evaluate("=UPPER(""" & Soyad & """)")
    Application.EnableEvents = False
    Target.Offset(0, 0) = Ad & " " & Soyad
   
    'Aşağıdaki Satır Soyadı Koyu Yapar
    Target.Offset(0, 0).Characters(Len(Ad) + 1, Len(Soyad) + 1).Font.Bold = True
    'Aşağıdaki Satır Verilen Rakama Göre Renklendirir
    Target.Offset(0, 0).Characters(Len(Ad) + 1, Len(Soyad) + 1).Font.ColorIndex = 3
   
    Application.EnableEvents = True
   
Son:
End Sub
 
Son düzenleme:
Katılım
2 Aralık 2013
Mesajlar
401
Excel Vers. ve Dili
Microsoft Office Standard 2013-Türkçe
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp deneyiniz.
Soyadı büyük harfi çevirdiği gibi ek olarak koyu ve renk de verdirebilirsiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo Son
    If Intersect(Target, [D:D]) Is Nothing Or Target.Row < 2 Or Target.Value = "" Then Exit Sub
   
    Dim Ad As String, Soyad As String
    Dim Dizi() As String
    Dim i As Integer
   
    Dizi = Split(Target.Value, " ")
    For i = 0 To UBound(Dizi) - 1
        Ad = Trim(Ad & " " & Dizi(i))
    Next i
   
    Soyad = Trim(Dizi(UBound(Dizi)))
    Ad = Application.WorksheetFunction.Proper(Ad)
    Soyad = Evaluate("=UPPER(""" & Soyad & """)")
    Application.EnableEvents = False
    Target.Offset(0, 0) = Ad & " " & Soyad
   
    'Aşağıdaki Satır Soyadı Koyu Yapar
    Target.Offset(0, 0).Characters(Len(Ad) + 1, Len(Soyad) + 1).Font.Bold = True
    'Aşağıdaki Satır Verilen Rakama Göre Renklendirir
    Target.Offset(0, 0).Characters(Len(Ad) + 1, Len(Soyad) + 1).Font.ColorIndex = 3
   
    Application.EnableEvents = True
   
Son:
End Sub

Sayın @Necdet

Paylaşmış olduğunuz koda "F" sütununu dahil edebilir miyiz.
 
Katılım
2 Aralık 2013
Mesajlar
401
Excel Vers. ve Dili
Microsoft Office Standard 2013-Türkçe
Doğru yere kopyalamışsınız.

Herhangi bir hücrede yukarıda da belirttiğim şekillerden biri ile kullanabilirsiniz..

=SoyadBüyük(A1)
yada
=SoyadBüyük("Ahmet Kalkavan")
Sayın @dalgalikur

Paylaşmış olduğunuz çözüm öneriniz deki kodu dosya içinde çalıştıramadım bu nedenle örnek dosya ekledim.
 
Katılım
2 Aralık 2013
Mesajlar
401
Excel Vers. ve Dili
Microsoft Office Standard 2013-Türkçe
Sayın @Necdet

Çözüm öneriniz olması gerektiği gibi çalışıyor. Zaman ayırdığınız için teşekkür ederim.

Sayın @dalgalikur

Çözüm önerinizi tam olarak anlayamadığım için (excel dosyalarında tam olarak macroların çalışmasını ve / veya çalıştırılmasını kavrayamadığım için) çalıştıramadım. Size de çok teşekkür ederim zaman ayırdığınız için.

Yardımları
 
Üst