Kod:
Sub CheckSingleDigitEntry(ByVal Target As Range)
' shg 2010
Const iCol As Long = 1 ' start column for single-digit entry
Const lCol As Long = 5 ' last column for single-digit entry
Static bInit As Boolean
Dim bOn As Boolean
Dim iDigit As Long
With Target
If .Count > 1 Then Exit Sub
If .Column >= iCol And .Column <= lCol Then
If Not bOn Or Not bInit Then
For iDigit = Asc("0") To Asc("5")
Application.OnKey Chr(iDigit), "'InsertDigit " & CLng(Chr(iDigit)) & "'"
Next iDigit
bOn = True
bInit = True
End If
ElseIf bOn Or Not bInit Then
For iDigit = Asc("0") To Asc("5")
Application.OnKey Chr(iDigit)
Next iDigit
bOn = False
bInit = True
End If
End With
End Sub
Public Sub InsertDigit(i As Long)
With ActiveCell
.Value = i
.Offset(1).Select
End With
End Sub
bende bu kodlarla yaptırdım ama halen anlayamadım 3 yerine 1 yazınca 1. sütundan başlıyor ancak 5 neyi etkiliyor...
kodları açıklayabilecek bir bilen varsa vba bilgimiz bir miktar daha artmış olacak...
intel4004' Alıntı:
Dediğim gibi bildiğim kadarıyla hücre içerisindeki veriyi anlık kontrol eden bir fonksiyon yok ancak bir form tasarlıyarak bu işlem de yapılabilir...
Herhalde şu iş görür. Form aç tuşu ile açılan formda a sütunu için değer kontrolü yapılmadan tek tuşa basılmasıyla değer yazarak alt satıra geçer...
mesajdaki örnekde iş görüyor ama her seferinde son satırdan eklemeye devam ediyor üzerinde çalışılmalı...