Varios combobox a textbox

Hola expertos:
Mi pregunta es la siguiente; tengo en un formulario 2 combobox y 4 textbox: cuando busco cierta información el el combobox 1, me muestra la información en el textbox1 y texbox2
Ejemplo:
Tengo los datos en una hoj de excel así
    A B C
Pedro luis carlos
Entonces en el combobox selecciono PEDRO y en el textbox 1 me aparece LUIS Y en el textbox2 CARLOS esto lo tengo mediante el siguiente código
Private Sub ComboBox1_Change()
On Error Resume Next
fil1 = Application.WorksheetFunction.Match(ComboBox1, Columns("a:a"), 0)
TextBox1 = Range("c" & fil1)
TextBox2 = Range("b" & fil1)
End Sub
Ahora lo que pretendo hacer es lo mismo pero con el combobox2 y no lo logro; los datos se cargan en el combobox1 y 2 bien pero en el textbox3 y textbox 4 no aparece nada.
el codigo que tengo en el userform para cargar mis datosen el combobox es el siguiente:
Dim strRango1 As String
Sheets("datos").Select
strRango = "a3:a" & Format(Range("a65500").End(xlUp).Row)
ComboBox1.RowSource = strRango
End Sub
¿He intentado duplicar el código como lo muestro a continuación para cada uno de los combobox y no me cargan los datos en los textbox 3 y 4 que puedo hacer?
Private Sub ComboBox1_Change()
On Error Resume Next
fil = Application.WorksheetFunction.Match(ComboBox1, Columns("a:a"), 0)
TextBox1 = Range("c" & fil)
TextBox2 = Range("b" & fil)
End Sub
Private Sub ComboBox2_Change()
On Error Resume Next
fil1 = Application.WorksheetFunction.Match(ComboBox2, Columns("a:a"), 0)
TextBox3 = Range("b" & fil1)
TextBox4 = Range("d" & fil1)
End Sub
Dim strRango1 As String
Sheets("datos").Select
strRango = "a3:a" & Format(Range("a65500").End(xlUp).Row)
ComboBox1.RowSource = strRango
End Sub
Dim strRango As String
Sheets("datos").Select
strRango = "b3:b" & Format(Range("b65500").End(xlUp).Row)
ComboBox2.RowSource = strRango
End Sub
Gracias y espero su pronta respuesta

1 respuesta

Respuesta
1
Sin entrar a probar tu código, leyéndolo veo que el combobox2 se carga con datos de la col B.
Entonces la búsqueda también la tenés que hacer en b:b y no en a:a como lo tenés ahora.
Private Sub ComboBox2_Change()
On Error Resume Next
fil1 = Application.WorksheetFunction.Match(ComboBox2, Columns("a:a"), 0)
TextBox3 = Range("b" & fil1)
TextBox4 = Range("d" & fil1)
End Sub
Otro detalle para que revises: tanto el textbox2 como el textbox3 mustran datos de la col B
Sdos
Elsa
PD) Aún estás a tiempo para aprovechar la promo de este mes en manuales ... te invito a visitar mi sitio.
Hola elsa:
Muchas gracias por responder mi pregunta, el código original que tengo tiene definida la columna b:b y aun así no funciona. Efectivamente el textbox2 va ligado a la columna B y el textbox3 a la columna B. osea que cuando cambio el combobox1 me muestra los datos de la columna a y b en el textbox 1 y 2.. y cuando cambio los datos del combo2 me muestra los datos de la columna 2 y 3.
Espero me puedas colaborar mil gracias
Hola Elsa:
Estuve revisando un poco más mi aplicación y me di cuenta que en los textbox solo me cargan los datos de las celdas que contienen letras. Ejemplo:
Tengo en una celda el código 1234 este valor me lo toma el combobox pero su equivalencia osea la celda siguiente no se muestra en el textbox.
Pero si tengo el código m1234 este si trabaja correctamente, ya cambie el formato de las columnas como texto, general, y colo numero y no ocurre nada. Hice un cambio manual a la celda donde aparece el código 1234 y lo coloque como p1234 después le borre la letra inicial quedando nuevamente 1234 pero con triangulo verde en la esquina de la celda, y así si se muestra correctamente en los textbox.
Espero me hayas entendido bien y quedo atento a tu ayuda
Mil gracias
Tu ejemplo inicial decía:
A B C
Pedro luis carlos
Entonces en el combobox selecciono PEDRO y en el textbox 1 me aparece LUIS ...
Es decir que estamos presumiendo que el combobox tendrá valores texto.
La instrucción:
fil1 = Application.WorksheetFunction.Match(ComboBox1, Columns("a:a"), 0)
Busca el valor del combobox como texto.
Si tus valores en col A o B serán numéricos, tendrás que convertirlos:
fil1 = Application.WorksheetFunction.Match(Val(ComboBox1), Columns("a:a"), 0)
Recordá de ajustar col a:a o b:b según corresponda.
Sdos
Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas