CommandButton Caption'da Büyük Harf Kullanımı

Katılım
1 Haziran 2016
Mesajlar
50
Excel Vers. ve Dili
Office 2013-Türkçe 64 Bit
Merhaba,
Aşağıdaki kodlarla klavyeden girilen harfleri CommandButton.Caption kısmına (CapsLook tuşundan bağımsız) büyük harf olarak yazdırıyorum. Ancak, küçük harf ı, ğ, ş harflerini büyük harfe çevirmiyor ve büyük harf İ, Ğ, Ş harflerini yazmıyor. Aynı kodu hücreye yazacak şekilde değiştirdiğimde (Büyük harfe çevirme işlemini yapan CommandButton1.Caption = Evaluate("=UPPER(""" & Chr(KeyAscii) & """)") satırında hiçbir değişiklik yapmadan) sorunsuz çalışıyor.
Nerde hata yapıyorum.

Kod:
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 65 To 90, 97 To 122 ' A-Z, a-z harf aralığı
        Case 199, 208, 214, 220, 221, 222, 231, 240, 246, 252, 253, 254 ' Türkçe Karakterler
        Case Else
        Exit Sub
    End Select
    CommandButton1.Caption = Evaluate("=UPPER(""" & Chr(KeyAscii) & """)")
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    CommandButton1.Caption = WorksheetFunction.Proper(ChrW(KeyAscii))
End Sub

Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 305: CommandButton1.Caption = "I"
        Case 105, 304: CommandButton1.Caption = "İ"
        Case 65 To 90, 97 To 122, 286, 287, 199, 231, 214, 246, 350, 351, 220, 252
             CommandButton1.Caption = UCase(ChrW(KeyAscii))
        Case Else
            'CommandButton1.Caption = KeyAscii
            Exit Sub
    End Select
End Sub

Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 73, 305: CommandButton1.Caption = "I"
        Case 105, 304: CommandButton1.Caption = "İ"
        Case 286, 287: CommandButton1.Caption = "Ğ"
        Case 199, 231: CommandButton1.Caption = "Ç"
        Case 214, 246: CommandButton1.Caption = "Ö"
        Case 350, 351: CommandButton1.Caption = "Ş"
        Case 220, 252: CommandButton1.Caption = "Ü"
        Case 65 To 90, 97 To 122
            CommandButton1.Caption = UCase(Chr(KeyAscii))
        Case Else
            'CommandButton1.Caption = KeyAscii
            Exit Sub
    End Select
End Sub
 
Son düzenleme:
Katılım
1 Haziran 2016
Mesajlar
50
Excel Vers. ve Dili
Office 2013-Türkçe 64 Bit
Çok teşekkürler sayın veyselemre,
1. kod kısa ve etkili. Klavyedeki tüm karakterleri yazdırıyor. Ben sadece Türkçe harfleri yazdırmak istediğim için kullanmadım. 2. kod tam istediğimi yapıyor. 3. kod da aynı işi yapıyor ama daha uzun olduğu için kullanmadım. Özetle her üçü de harika, tekrar teşekkürler.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Çok teşekkürler sayın veyselemre,
1. kod kısa ve etkili. Klavyedeki tüm karakterleri yazdırıyor. Ben sadece Türkçe harfleri yazdırmak istediğim için kullanmadım.
Sadece harflerde işlem yapıp diğerlerini pas geçer.
Kod:
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 65 To 90, 97 To 122, 105, 304, 305, 286, 287, 199, 231, 214, 246, 350, 351, 220, 252
            CommandButton1.Caption = WorksheetFunction.Proper(ChrW(KeyAscii))
    End Select
End Sub
 
Katılım
1 Haziran 2016
Mesajlar
50
Excel Vers. ve Dili
Office 2013-Türkçe 64 Bit
Teşekkürler,
Bu daha da kısaymış.
ChrW fonksiyonunu bilmiyordum. Görünce biraz araştırdım ve Chr, Chr$, ChrB, ChrB$, ChrW fonksiyonlarını da buldum. Böylece yeni fonksiyonlar öğrendim. Öğrenmeye devam :)
 
Üst