Label1 depende de un ComboBox1 en un userform1

En el ComboBox1 despliego la lista y pongo nombre y en el label1 me debe salir el DNI automáticamente de la persona selecionado, así sucesivamente con todos los nombres, los datos de nombres y DNI deben estar guardados en el userform1.

El userform1 debo cerrar con la tecla esc.

Felipe

1 respuesta

Respuesta
1

[Hola

Vamos a suponer varias cosas:

- Tus datos están en el rango "A1:B20", en la columna "A" los nombres y la "B" los DNI.

- Se llama "Combobox1" y "Label1"

- Los DNI son números y NO texto

Entonces, en la propiedad "RowSource" del "Combobox1" colocas "A1:A20" (obviamente sin las comillas) y luego usas el evento "Change" del "Combobox1":

Private Sub ComboBox1_Change()
Dim DNI  As Long
DNI = Application.WorksheetFunction.VLookup(ComboBox1, Range("A1:B20"), 2, 0)
Label1.Caption = DNI
End Sub

Comentas

Abraham Valencia

Buen día.

Abraham Valencia

Los NOMBRES y los DNI también deben estar registrados dentro del userform, ningún dato debe jalar de las rangos de Excel.

Private Sub UserForm_Activate()
    UserForm1.ComboBox1.Clear
    ComboBox1.AddItem "JFERNANDO"
    ComboBox1.AddItem "LSAVEDRA"
    ComboBox1.AddItem "WMERCADO"
End Sub

   Para los nombres ya lo tengo el código esta jalando en el Combobox1, la pregunta es como hacer para los números de DNI.??? y deben estar asociados al nombre.

Saludos

Felipe

¿Sabes usar "Select - Case"?

Abraham Valencia

Estimado experto.

Soy principiante no conozco de códigos, espero a lo futuro con la ayuda de ustedes los expertos aprenderé bastante, espero me ayude con la petición anterior.

Felipe

Usa el evento "Change" del "Combobox1":

Private Sub ComboBox1_Change()
Select Case ComboBox1
    Case "JFERNANDO"
        Label1.Caption = "12345678"
    Case "LSAVEDRA"
        Label1.Caption = "12121212"
    Case "WMERCADO"
        Label1.Caption = "87654321"
End Select
End Sub

Prueba y comentas

Abraham Valencia

Gracias,

He probado y funciona, solo que como hago para cerrar el formulario con la tecla ESC, con eso estaría finalizando el tema.

[Hola

Hay más de una forma pero creo que una de las más "simples" es colocar esto en el módulo del "Userform" para usar su "evento" "KeyPress":

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 27 Then
Unload Me
End If
End Sub

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas