Thanks Thanks:  0
Likes Likes:  0
Results 1 to 5 of 5

Thread: Mover el enfoque en UserForm

  1. #1
    New Member
    Join Date
    Feb 2002
    Location
    Alicante (España)
    Posts
    6
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    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?

  2. #2
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Bogota, Colombia
    Posts
    11,959
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Solo por probar, puse dos ComboBox en un Userform con el siguiente código:


    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


    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.
    Regards,

    Juan Pablo González
    http://www.juanpg.com

  3. #3
    New Member
    Join Date
    Feb 2002
    Location
    Alicante (España)
    Posts
    6
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    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

  4. #4
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Bogota, Colombia
    Posts
    11,959
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    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.
    Regards,

    Juan Pablo González
    http://www.juanpg.com

  5. #5
    New Member
    Join Date
    Feb 2002
    Location
    Alicante (España)
    Posts
    6
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Gracias. Aclarado todo

Some videos you may like

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •