mas Opik,

Coba langkah ini ya : (pelan-pelan)
1. deklarasikan dalam scope module (di userform kalau pakai userform, di
worksheet kalau pakai worksheet) untuk variabel berikut ini : (nama
variabel -> tipe datanya)
    a. dblTime -> double       'waktu pencet terakhir
    b. dblBatas -> double      'batas detik antar pencet tombol untuk
dinyatakan pencet bersamaan
    c. sChar -> string              'nyimpan karakter di tombol terakhir
yang dipencet

2. set nilai awal variabel (letakkan di event initialize kalau pakai
userform, di event activate kalau di worksheet)
dbltime=timer
schar=vbnullstring
dblbatas=0.5    'berarti kalau kurang dari 0.5 detik pencet tombol lagi,
maka masih dianggap sambungan yang tadi
'jadi kalau dalam waktu 2 menit dia pencet tombol secara konsisten kurang
dari 0.5 detik, maka akan dianggap pencet bersamaan
'wakakakakakka
'atur sendiri batas yang lain supaya bisa batasi dalam 0.5 detik terakhir
ini pencet berapa tombol, gitu ya

3. atur update nilai variabel saat user pencet sesuatu (misal di textbox
bernama txtL1). Letakkan di event keydown si txtL1
dim dblCurTime as double

'bagian atur update nilai variabel saat user pencet tombol
dblcurtime=timer
if dblcurtime-dbltime < dblbatas then
    schar=schar & chr$(keycode)
else
   schar=chr$(keycode)
endif
dbltime=dblcurtime

'tampilkan pesan disini.
'jangan pakai msgbox ah, gangguin orang ngetik dan akan membuat batas waktu
pasti lebih dari 0.5 detik
'pakai label control aja, font-nya digedein dan dikasih warna gonjreng
(biar eye catching gitu)
'misal si label dikasih nama lblinpo
lblinpo.caption=schar


4. user pencet angka aja yang dibolehkan (alias boleh ditulis oleh si
textbox bernama txtL1). Lanjutkan yang nomor 3 ya
'bagian atur hanya angka do ang
select case keycode
case 48 to 57    'kode ASCII untuk angka do ang
     'minum kopi aja gih
case else
    keycode=0    'supaya yang ditulis si textbox adalah karakter 0 (null)
atau gak ada apa-apa
end select

5. selesai dan siap dicoba. Pastikan udah ada control yang namanya lblinpo
di nomor 3 bagian akhir ya
6. jangan lupa disave, supaya gak nangis kalo ternyata cekripnya bikin
crash (wakakaka... soale ditulis apa yang terlintas sajah... gak bisa nyoba)

:)

Wassalam,
Kid.


2013/9/25 lapendosol opik <[email protected]>

> **
>
>
> Dear rekan-rekan Be-Excel,
> Saya ingin tanya masalah KeyDown ini. Misalkan saya punya property
> TextBox, jika pencet huruf tertentu akan melakukan proses tertentu.
> Misalnya kalo pencet huruf A maka akan muncul pesan "Pencet Huruf A".
> Bagaimana jika pencet 2 huruf berturut-turut bisa untuk melakukan proses
> tertentu? Misal pencet hurut A dan S akan muncul pesan "Pencet Huruf AS".
> Berkat bantuan rekan-rekan sebelumnya membantu saya dalam pembuatan kode
> VBE nya, berikut:
>
> Private Sub txtL1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
> Shift As Integer)
>     'pencet huruf A muncul pesan "Pencet A"
>     If KeyCode = 65 Then MsgBox "Pencet A"
>     'pengennya pencet huruf A dan S muncul pesan "Pencet AS"
>     If KeyCode = 65 + KeyCode = 83 Then MsgBox "Pencet AS"
>     'pencet selain angka, txtL1.Value = NullString
>     If KeyCode > 57 And KeyCode < 96 Or KeyCode > 105 Then KeyCode = 0
> End Sub
>
> Yg berwarna merah sudah saya otak atik pakai And Or + tapi hasilnya tidak
> sesuai. Bagaimana caranya untuk kasus seperti ini?
> Apakah harus diberi semacam timer? jika dalam waktu 1 detik pencet huruf A
> maka keluar pesan "Pencet A". Jika dalam waktu 1 detik pencet huruf A dan S
> maka keluar pesan "Pencet AS". Mohon bantuannya rekan-rekan.
> Trimakasih sebelumnya
> Wassalam,
>
>  
>

Kirim email ke