Mover el enfoque en UserForm

yoguibubu

New Member
Joined
Feb 19, 2002
Messages
6
Como se puede mover el enfoque de un control a otro dentro de un UserForm:
Tengo un combobox (ComboBox2) y en el evento "afterupdate" he puesto:
UserForm1.ComboBox1.SetFocus
No se mueve el enfoque
Alguien me puede orientar?
 

Excel Facts

How can you automate Excel?
Press Alt+F11 from Windows Excel to open the Visual Basic for Applications (VBA) editor.
Solo por probar, puse dos ComboBox en un Userform con el siguiente código:

<pre>
Option Explicit

Private Sub ComboBox2_AfterUpdate()
MsgBox "After"
'ComboBox1.SetFocus
End Sub

Private Sub ComboBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "Before"
'ComboBox1.SetFocus
End Sub

Private Sub ComboBox2_Change()
MsgBox "Change"
End Sub
</pre>

Con este ejemplo se puede ver que para un ComboBox el evento que se dispara cuando se cambia o se selecciona un valor de la lista es el change, los otros dos se dispararon únicamente cuando cerraba el UserForm.

Con esto quiero decir que habría que poner la instrucción:

ComboBox1.SetFocus

en el evento Change() y no en los otros. Una última cosa... esto es para controles COMBOBOX, para TextBox los dos eventos anteriores si se disparan como "debería" ser.
 
Upvote 0
OK. Funciona como dices, Juan Pablo.
Aunque no me afecte ahora, pero he probado tambien lo del TextBox en el evento Change(), y curiosamente me lo hace en cuanto escribo o modifico el primer caracter. Pensé que lo haría al perder el enfoque y antes del AfterUpdate()
Saludos
 
Upvote 0
Bueno, solo para clarificar... el evento Change() de un TextBox ocurre cuando se cambia el valor (Al igual que en un ComboBox), y esto ocurre apenas se entra cualquier caracter... por esto en TextBoxes es mejor usar el BeforeUpdate() para que se utilice el valor "final", y en ComboBoxes el evento Change() que es el que se dispara.
 
Upvote 0

Forum statistics

Threads
1,214,583
Messages
6,120,378
Members
448,955
Latest member
BatCoder

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top