ClassModule ile keycode uygulaması.

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhabalar.
Textbox1'den textbox10'a kadar userformda textbox var.
aşağı ok tuşuna bastığımda bir alttaki textboxa setfocus olacak,Yukarı ok tuşuna bastığımda bir üstteki textbox'a setfocus olacak.
Normalde bunu her textbox!ın keycode olayına girip yapabiliyorum.
Ama ben classmodüle ile yapmak istiyorum.Kodlar dahada kısalıyor.
Nasıl yapabilirim.
Teşekkür ederim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Userformun kod sayfasında en üste,

Kod:
Dim txt(10) As New Class1
Userformun initialize olayına,

Kod:
Private Sub UserForm_Initialize()
For a = 1 To 10
Set txt(a).txt = Controls("textbox" & a)
Next
End Sub
Classmodül sayfasına (adı class1 olmalıdır),

Kod:
Public WithEvents txt As MSForms.TextBox

Private Sub txt_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
ad = Replace(txt.Name, "TextBox", "")
If ad < 10 And KeyCode = 40 Then UserForm1.Controls("textbox" & ad + 1).SetFocus
If ad > 1 And KeyCode = 38 Then UserForm1.Controls("textbox" & ad - 1).SetFocus
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Levent bey teşekür ederim.
İyi geceler.:)
 
Üst