• DİKKAT

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

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
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.
 
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.
 
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

.
 
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
 
İlginize ve emeğinize teşekkürler..
 
Geri
Üst