• DİKKAT

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

Hücredeki HARFLER otomatik BÜYÜK yazılsın

  • Konbuyu başlatan Konbuyu başlatan hsyn17
  • Başlangıç tarihi Başlangıç tarihi
Katılım
15 Temmuz 2013
Mesajlar
92
Excel Vers. ve Dili
2016 TR
Selamlar Sayın Üstatlar;
Sorum Şu; SADECE aşağıdaki hücrelere veri yazdığımda, Caps Lock tuşuna bağımlı olmaksızın, (küçük harfle de yazsam) sonuçta otomatik olarak BÜYÜKHARF olsunlar. Böyle otomatik çalışan bir makro yazabilir miyiz?

hücreler:
A1
B5
D10
AB7
AK3
 
VBA editörü ile sayfanızın kod bölümüne
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub
    On Error Resume Next
    If Not Intersect(Target, Range("A1,B5,D10,AB7,AK3")) Is Nothing Then
        Application.EnableEvents = False
        Target = UCase(Target)
        Application.EnableEvents = True
    End If
    On Error GoTo 0
End Sub

uygulayınız.
 
Elinize Sağlık Sayın Üstat, Teşekkür ederim güzel olmuş.
YALNIZ; i, İ, ı, I, bu dört harfi çeviremiyor. Düzeltmemiz mümkün müdür Sn Turist.
 
Aşağıdaki satırı kırmızı satır gibi değiştirip deneyin.

Kod:
Target = UCase(Target)

Kod:
[COLOR="Red"]Target = UCase(Replace(Replace(Target, "i", "İ"), "ı", "I")))[/COLOR]
 
Aşağıdaki satırı kırmızı satır gibi değiştirip deneyin.

Kod:
Target = UCase(Target)

Kod:
[COLOR="Red"]Target = UCase(Replace(Replace(Target, "i", "İ"), "ı", "I")))[/COLOR]

Sn.Korhan Ayhan,
Türkçe karakter düzeltmede katkınız için teşekkür ederim.
 
Üstadlar başka bir konu açmak istemedim.

Küçük harfde büyük harfde veya küçük büyük harfte kullansam yazdığım bütün kelimelerin sadece ilk harfinin büyük diğerlerinin küçük harfle yazılmasını nasıl sağlayabiliriz.

BUgün Çok güzel BİR Gündü.

Bugün Çok Güzel Bir Gündü.

Çalışma sayfasındaki C3 F3 ve H3 hücrelerinden başlayarak çalışma sayfasındaki C F ve H sütunlarında bu işlemi nasıl yapabiliriz.Teşekkürler.
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Range, Son As Long, Veri As Range
    Son = Rows.Count
    Set Alan = Union(Range("C3:C" & Son), Range("F3:F" & Son), Range("H3:H" & Son))
    If Intersect(Target, Alan) Is Nothing Then Exit Sub
    If Target.Cells.Count = Cells.Count Then Exit Sub
    Application.EnableEvents = False
    On Error Resume Next
    For Each Veri In Target
        If Not Intersect(Alan, Veri) Is Nothing Then
            If Veri.Text <> "" Then
                Veri = WorksheetFunction.Proper(Veri.Text)
            End If
        End If
    Next
    On Error GoTo 0
    Application.EnableEvents = True
End Sub
 
Hayırlı akşamlar,
Bir modül ekleyip denermisiniz.Hücre aralığınızı kendinize göre ayarlayın.
Kod:
Sub Abc()
For Each x In Range("C3:C100,F3:F100,H3:H100")
x.Value = Application.Proper(x.Value)
Next
End Sub
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Range, Son As Long, Veri As Range
    Son = Rows.Count
    Set Alan = Union(Range("C3:C" & Son), Range("F3:F" & Son), Range("H3:H" & Son))
    If Intersect(Target, Alan) Is Nothing Then Exit Sub
    [COLOR="red"]If Target.Cells.Count = Cells.Count Then[/COLOR] Exit Sub
    Application.EnableEvents = False
    On Error Resume Next
    For Each Veri In Target
        If Not Intersect(Alan, Veri) Is Nothing Then
            If Veri.Text <> "" Then
                Veri = WorksheetFunction.Proper(Veri.Text)
            End If
        End If
    Next
    On Error GoTo 0
    Application.EnableEvents = True
End Sub

Korhan Bey,
Kod:
If Target.Cells.Count = Cells.Count Then
satırında HATA veriyor.
 
Merhaba,

2007 ve sonraki versiyonlarda hücre sayısı çok fazla olduğu için uyum sorunu oluşuyor. Hata bundan kaynaklanıyor. Kodu aşağıdaki gibi düzenlerseniz sorun düzelecektir.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Range, Son As Long, Veri As Range
    Son = Rows.Count
    Set Alan = Union(Range("C3:C" & Son), Range("F3:F" & Son), Range("H3:H" & Son))
    If Intersect(Target, Alan) Is Nothing Then Exit Sub
    If Val(Application.Version) < 12 Then
        If Target.Cells.Count = Cells.Count Then Exit Sub
    Else
        If Target.Cells.CountLarge = Cells.CountLarge Then Exit Sub
    End If
    Application.EnableEvents = False
    On Error Resume Next
    For Each Veri In Target
        If Not Intersect(Alan, Veri) Is Nothing Then
            If Veri.Text <> "" Then
                Veri = WorksheetFunction.Proper(Veri.Text)
            End If
        End If
    Next
    On Error GoTo 0
    Application.EnableEvents = True
End Sub
 
Korhan Bey,
Yeni kodlarla denendiğinde HATA yok, fakat Kodlar işlev görmüyor.
Ancak; C3... F3... H3... satırlarında yazılanlar bulunduğu satırlara kopyalandığında Kod çalışıyor.
Ekli dosyada örneği görebilirsiniz.
 

Ekli dosyalar

Seçime odaklanınca tek hücre üzerindeki işlemi atlamışım. Üstteki önerdiğim kodları revize ettim. Tekrar deneyiniz.
 
bu konu benimde ilgimi çekti. Bana lazım olan BÜYÜKHARF kısmı. Başka bir hücreden kopyala yapıştır yaptığım tablo verilerinin A sütununda olanlarının hepsinin BÜYÜKHARFE dönüşmesini istiyorum. Bunun kodunu verebilir misiniz acaba?
 
Yapıştırma işleminden sonra aşağıdaki kodu çalıştırıp deneyin.

Hücre aralığını dilediğiniz gibi değiştirebilirsiniz.

Kod:
Sub BUYUK_HARF()
    Dim Veri As Range
    
    For Each Veri In Range("A1:A1000")
        Veri.Value = UCase(Replace(Replace(Veri.Text, "i", "İ"), "ı", "I"))
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
teşekkürler Korhan bey, işimi gördü. elinize sağlık
 
Geri
Üst