• DİKKAT

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

Hücreye Girileni Büyük Harfe Dönüştürme

Katılım
1 Şubat 2006
Mesajlar
21
Biliyorum çok basit bir yolu vardır ama bulamdım ben. Hücreye girdiğim her kelime entere basınca büyük harf olarak değişsin.

Bu forum sayfaları arasında da vardır ama o kadar çok sayfa var ki aramaya kalksam bir günüm gider. Forumda arama yapmanın kolay bir yolunu bilen varsa anlatırsa sevinirim ayrıca.
 
Peki bu işlem nasıl yapıldı, nerden yapıldı ben çok merak ettim çünkü bende çok uğraştım bulamamıştım.
 
Araçlar-Makro-Visual Basic Düzenleyicisi-Sayfa1 içinde
 
Selamlar,

Sn. hamitcan'ın kodlarını aşağıdaki gibi düzenlerseniz İ harfindeki problemde ortadan kalkmış olur.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "i" Then Target.Value = "İ"
If Target.Value = "ı" Then Target.Value = "I"
Target = StrConv(Target, vbUpperCase)
End Sub
 
selam COST CONTROL 'un yazmış olduğu mod sadece baş harfi İ olursa geçerli, İ garfi kelimenin arasında bir yerde ise geçerli olmuyor. Buna bir çözüm var mı acaba?
 
Selamlar,

Aşağıdaki gibi denermisiniz. (Alıntıdır.)

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Kelime = Replace(Target.Value, "i", "İ")
Kelime = Replace(Kelime, "ı", "I")
Target.Value = StrConv(Kelime, vbUpperCase)
End Sub
 
Merhaba,

Son olarak sayın Cost Control'ün yazdığı kodlarda, sayfaya yeni bir metin girildiğinde problem olmuyor. Ancak sayfada birden fazla satır kopyalayıp aynı sayfaya, ya da başka bir excel sayfasından bu sayfaya metin yapıştırmak istediğimizde harfler büyükharfe çevrilmediği gibi, yapıştırılan yerdeki veriler de siliniyor. Acaba buna bir çözüm bulunabilir mi?
 
Sevgili fructose,

Aslında bu sayfada belirtilen kodlar benim işime daha çok yarıyor. Haluk Bey'in yaptığı çalışma güzel, ancak benim için çok kullanışlı değil. Bu sayfadaki kodlarda da büyükharfe çevirmede hiçbir problem yok. Ancak birden fazla değer yapıştırılmaya çalışıldığında problem çıkıyor. Eğer bu halledilebilirse daha işe yarar hale gelebilir.
 
Diyelim sorun E2:K500 arasında yani büyük yapmak istediğiniz kısım

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 97 To 122
Range("E2:K500").Replace _
What:=Chr(i), Replacement:=Chr(i - 32), LookAt:=xlPart
Next i
End Sub

olarak bir deneyin
 
VBA ile uğraşmak istemiyorsanız,
ilgili hücreleri kopyalayıp WORD'e yapıştırın shift + F3 ile hepsini büyük harfe çevirin ve tekrar eXCEL'e yapıştırın

uyguladığınız sayfayada aşağıdaki kodu uygulayın.

Private Sub Worksheet_Activate()
msgbox "işlem tamamlandı"
End Sub
 
Sevgili fructose,

Yazdığınız kod sayfayı çok ağırlaştırıyor. Ayrıca türkçe karakter problemi var. Bu sayfada son olarak sayın Cost Control'ün yazdığı aşağıdaki kodda büyükharfe çevirmede hiçbir problem yok ve hızlı. Ancak belirttiğim gibi sadece birden fazla hücre yapıştırmada problem oluşturuyor. Bu halledilebilirse bence çok kullanışlı bir VBA.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range) 
On Error Resume Next 
Kelime = Replace(Target.Value, "i", "İ") 
Kelime = Replace(Kelime, "ı", "I") 
Target.Value = StrConv(Kelime, vbUpperCase) 
End Sub
 
m.cay' Alıntı:
....
Bu halledilebilirse bence çok kullanışlı bir VBA.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MyRng As Range
    On Error Resume Next
    If Selection.Count > 1 Then GoTo ResumeSub:
    Kelime = Replace(Target.Value, "i", "İ")
    Kelime = Replace(Kelime, "ı", "I")
    Target.Value = StrConv(Kelime, vbUpperCase)
    Exit Sub
ResumeSub:
    For Each MyRng In Selection
        Kelime = Replace(MyRng.Value, "i", "İ")
        Kelime = Replace(Kelime, "ı", "I")
        MyRng.Value = StrConv(Kelime, vbUpperCase)
    Next
End
End Sub
 
Sevgili Haluk,

İlgine çok teşekkür ederim. Şimdi çok güzel ve kullanışlı bir kod oldu. Yalnız bir problem var. Sayfanın sayı olan biçimlendirilmiş hücrelerinde değişiklik veya copy-paste yaptığımızda bu hücrelerin biçimlendirilmesi kayboluyor. Bunu çözebilmek için bu kodu bütün sayfaya değil de, sadece metnin olduğu belirli bir alana -örneğin (c2:c2000) nasıl uygulayabiliriz.
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MyRng As Range
    On Error Resume Next
    If Selection.Count > 1 Then GoTo ResumeSub:
    Kelime = Replace(Target.Value, "i", "İ")
    Kelime = Replace(Kelime, "ı", "I")
    Target.Value = StrConv(Kelime, vbUpperCase)
    Exit Sub
ResumeSub:
    For Each MyRng In Selection
        Kelime = Replace(MyRng.Value, "i", "İ")
        Kelime = Replace(Kelime, "ı", "I")
        MyRng.Value = StrConv(Kelime, vbUpperCase)
    Next
End
End Sub
Sayın Haluk Hocam bu kodu sadece seçilen Bölgeye uygulayan bir makro düğmesine nasıl uyarlayabiliriz.
 
Geri
Üst