bazı durumlar hariç ilk harfleri büyük yapmak

Katılım
28 Kasım 2007
Mesajlar
16
Excel Vers. ve Dili
türkçe 2007
merhabalar,
çeşitli proje isimlerinin yer aldığı bir kaydımız var ve bu projelerin isimlerinin ilk harflerinin büyük olması gerekiyor ancak yazım düzeni fonksiyonu isim içinde büyük olmasını istemediklerimizi de büyük harf yapıyor
örneği incelerseniz sevinirim

aradığım çözüm formüllerle olmalı makro genel bir kayıt olduğu için kullanamıyoruz
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Siz ısrarla formülle çözüm istemişsiniz. Bu işlemleri formülle yapmak çalışmanızı yoracaktır. Bu sebeple size makrolu çözüm öneriyorum. Dilerseniz kullanabilirsiniz.

Dosyanızda farklı veriler olmadığı için tüm olasılıkları deneyemedim. Eğer kodda eksiklik tesbit ederseniz belirtirseniz düzeltmeye çalışırız.


Kod:
Option Explicit
 
Sub YAZIM_DÜZENLE()
    Dim Hücre As Range, Bul1 As Integer, Bul2 As Integer
    Dim Eski_Kelime As String, Yeni_Kelime As String
    Dim Eski_Bağlaç(), Yeni_Bağlaç()
    Dim X As Integer, Eski_Romen As String, Yeni_Romen As String
 
    Application.ScreenUpdating = False
 
    For Each Hücre In Selection
        If Hücre <> Empty Then Hücre = Evaluate("=PROPER(""" & Hücre & """)")
            If InStr(1, Hücre, "(") > 0 And InStr(1, Hücre, ")") > 0 Then
                Bul1 = InStr(1, Hücre, "(")
                Bul2 = InStr(1, Hücre, ")")
                Eski_Kelime = Mid(Hücre, Bul1, Bul2)
                Yeni_Kelime = Evaluate("=UPPER(""" & Eski_Kelime & """)")
                Hücre = Replace(Hücre, Eski_Kelime, Yeni_Kelime)
            End If
    Next
 
    Eski_Bağlaç = Array("İle ", "Ve ", "Veya ", "Yada ")
    Yeni_Bağlaç = Array("ile ", "ve ", "veya ", "yada ")
 
    For X = 0 To UBound(Eski_Bağlaç)
        Selection.Replace What:=Eski_Bağlaç(X), Replacement:=Yeni_Bağlaç(X), LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Next
 
    For X = 1 To 3999
        Eski_Romen = Evaluate("=PROPER(""" & WorksheetFunction.Roman(X) & """)") & "."
        Yeni_Romen = Evaluate("=UPPER(""" & Eski_Romen & """)")
        Selection.Replace What:=Eski_Romen, Replacement:=Yeni_Romen, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Next
 
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ayrıca formülle Romen rakamlar hariç bir nebze olsun çözüm bulabildim. Umarım faydası olur.

A1 hücresindeki veri için B1 hücresine aşağıdaki formülü uygulayınız.

Kod:
=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YAZIM.DÜZENİ(A1);"İle ";"ile ");"Ve ";"ve ");"Veya ";"veya ");"Yada ";"yada ");YAZIM.DÜZENİ(PARÇAAL(A1;BUL("(";A1;1);BUL(")";A1;1)-BUL("(";A1;1)+1));BÜYÜKHARF(PARÇAAL(A1;BUL("(";A1;1);BUL(")";A1;1)-BUL("(";A1;1)+1)))
 
Katılım
28 Kasım 2007
Mesajlar
16
Excel Vers. ve Dili
türkçe 2007
tşk ederim formüllerle çözüm arıyorum mecburen makro kullanamıyoruz. birçok kişinin kullandığı ortak bir kayıt olduğundan.. yazdığınız formül işimi kısmen de olsa görecek gibi tekrar tşk
 
Üst