EXCEL’DE KLAVYEDEN BASILAN TUŞU YAKALAMA

Excel VBA içinde KeyPress tarzı bir olay olmadığı için kullanıcının bastığı tuşu yakalaycak bir kod yazamıyoruz. Daha doğrusu dolaylı olarak yazıyoruz.

Application nesnesinin OnKey metodu işimizi görecek.

Diyelim ki bir hücrede Enter tuşuna basıldığında diğer hücreye günün tarih ve saatini yazsın istiyoruz.

Yeni bir modül açıyoruz ve bu kodu yapıştırıyoruz.

‘Excel açılırken Enter tuşu işlemlerini bir makroya atıyoruz
Private Sub Auto_Open()
Application.OnKey ~, PutDates
Application.OnKey {ENTER}, PutDates
End Sub

‘Excel kapanırken atamayı kaldırıyoruz
Private Sub Auto_Close()
Application.OnKey ~
Application.OnKey {ENTER}
End Sub

‘Enter tuşuna basıldığında çalışacak prosedür
Sub PutDates()
‘Eğer kısıtlamanın sadece bir sayfada olmasını istiyorsak
If ActiveSheet.Name <> bloke Then
ActiveCell.Offset(1, 0).Activate
Exit Sub
End If
If ActiveCell.Value = Then Exit Sub
Select Case ActiveCell.Column
Case 1, 2

‘numaralar duruma göre değiştirilebilir. Burada 1. ve 2. sütunlara bakıp 8., 9. ve 10 sütunlara bilgi yazıyoruz
If Cells(ActiveCell.Row, 8).Value = Then
Cells(ActiveCell.Row, 8).Value = Date
End If
If Cells(ActiveCell.Row, ActiveCell.Column + 8).Value = Then
Cells(ActiveCell.Row, ActiveCell.Column + 8).Value = Time
End If
End Select
End Sub

—–

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir