Belirli sütunlara büyük harf

magnesia

Yasaklı üye
Katılım
1 Ocak 2018
Mesajlar
351
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
01.01.2023
Arkadaşlar selam.
Sayfanın C ve D sütunlarına yazdığım harfleri büyük harfe çevirmesini istiyorum. Bu sütunlara girilecek veriler harflerle birlikte rakamlardan oluşmaktadır.
Şimdiden teşekkürler.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,929
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:D500")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End Sub
Aralıklarınızı siz kendinize göre düzenlersiniz.
 

magnesia

Yasaklı üye
Katılım
1 Ocak 2018
Mesajlar
351
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
01.01.2023
Tamamdır.
Çok teşekkür ederim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Gerçi Ali Bey cevap vermiş ancak, kendisinin önerdiği makroda VBA ile büyük harfe çevrildiği için Türkçe harflerde (örneğin "i") büyük harfe çevirmede problem olacaktır.

Benim aklıma gelen ise; siz sayfada C ve D sütununda işlem yaparken, klavyedeki CapsLock tuşunun aktif edilmesi (ON), diğer sütunlarda işlem yaparken pasif (OFF) edilmesi.

Bunu da aşağıdaki gibi bir API kullanarak yapabiliriz.

Söz konusu çalışma sayfasının modülüne aşağıdakileri yapıştırıp, deneyebilirsiniz...

Kod:
Private Type KeyboardBytes
    kbByte(0 To 255) As Byte
End Type

Dim kbArray As KeyboardBytes

Private Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    KeyCode = &H14
    GetKeyboardState kbArray
    If (Not Intersect(Target, Range("C:D")) Is Nothing) Then
        kbArray.kbByte(KeyCode) = 1
    Else
        kbArray.kbByte(KeyCode) = 0
    End If
    SetKeyboardState kbArray
End Sub
.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,929
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Haluk Bey'in uyarısı ile ilave yaptım
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:D500")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target <> UCase(Replace(Replace(Target, "i", "İ"), "ı", "I")) Then Target = UCase(Replace(Replace(Target, "i", "İ"), "ı", "I"))
Application.EnableEvents = True
End Sub
 

magnesia

Yasaklı üye
Katılım
1 Ocak 2018
Mesajlar
351
Excel Vers. ve Dili
Excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
01.01.2023
İlginize ve emeğinize teşekkürler..
 
Üst