UserForm açılır açılmaz focus yapmak

Katılım
12 Temmuz 2012
Mesajlar
17
Excel Vers. ve Dili
2010 TR
Merhabalar.

Böyle basit bir şeyi Excel'de yapamamış olmak çok tuhafıma gidiyor şu anda. Hem yabancı forumlarda hem de yerli forumlarda aradım bulamadım.

UserForm'u açmak için bir butonum var. Butona tıklayıp form açıldığı anda TextBox1'in focus olmasını ve böylece direkt yazmaya başlmayı istiyorum.

Formu açtığım buton koduna formu aç komutundan sonra "TextBox1.SetFocus" yazdım işe yaramadı (Object required hatası verdi). Bu kodu UserForm kod sayfasına yazdım, aynı şey..

Nasıl yapabileceğimize ilişkin fikri olan var mı?

Bir de aynı TextBox1'in değeri yazılıp enter'a basıldığında belli bir tuşun tıklanmasını istiyorum. Şu anda enter'a basıldığında istediğim tuş focus oluyor ama nasıl tıklatabiliriz onu?
 
Katılım
20 Ağustos 2009
Mesajlar
520
Excel Vers. ve Dili
2010 - Türkçe
Kodu bu şekilde ekleyiniz.

Private Sub UserForm_Initialize()
TextBox1.SetFocus
End Sub
 
E

ExcelF1

Misafir
Tuştan kastınız CommandButton nesnesi sanırım. Aşağıdaki şekilde deneyebilirsiniz.

Kod:
Private Sub CommandButton1_Click()
MsgBox "Merhaba"
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CommandButton1_Click
End Sub

Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Açılışta setfocus için kod yazmanıza gerek yok. İlgili nesnenin properties penceresindeki tabindex değerini 0 (sıfır) yaparsanız, imleç direk bu nesnede görünecektir.
 
Katılım
12 Temmuz 2012
Mesajlar
17
Excel Vers. ve Dili
2010 TR
İlgilenen arkadaşlara teşekkür ederim. Tabindex'i uygulamak aklıma geldi ama bunun direk focus yapacağını hiç düşünmediğim için denemedim. En etkili yöntem bu, Levent hocanın verdiği.

İkinci soruya kimse değinmemiş :) Onu da butonun Default değerini true yaparak çözdüm az önce.
 
E

ExcelF1

Misafir
2.sorunuz neydi ki ?
Biz 2.soru diye 3.mesajda cevap vermeye çalışmıştık.
 
Üst