¿Cómo buscar por dos criterios y cargar datos en un userform de excel?

Me tomo el atrevimiento de pedir su ayuda ya que realmente estoy atascado con esto.

He creado un formulario en excel, este tiene una serie de textbox's para capturar datos y ser enviados celdas especificas en una hoja de mi libro de excel al pulsar un botón (esta parte la he logrado hacer funcionar), lo que no logro hacer (y tampoco encontré algo similar que pudiese adaptar a mi situación) es:

Como puedo a partir de dos datos introducidos en el formulario (en este caso en el textbox 1 y texbox 2 respectivamente) y al pulsar un botón en el userform destinado a esta tarea que se carguen los demás datos en los demás textbox.

Por otro lado, me gustaría saber si hay alguna manera de que una vez que se cargaron los datos de la búsqueda en el formulario y hay necesidad de cambiar alguno, se pueda llevar a cabo la actualización de estos datos mediante otro botón en el formulario.

Para mejor referencia

-Los los datos los alimento sobre la misma fila, es decir, toda la información que necesito cargar con la búsqueda de los dos criterios se encuentra en la misma fila, en diferentes columnas).

-La parte de poder "actualizar los datos" también sería sobre la misma fila, en diferentes columnas.

De antemano agradezco cualquier ayuda, orientación y/o idea que pudiesen compartirme.

1 respuesta

Respuesta
2

Utiliza lo siguiente para buscar los datos de los textbox1 y textbox2

Las columnas a buscar son para el textbox1 la A, para el textbox2 la B

Te puse 3 textbox de ejemplos para cargar las columnas C, D y E

Cambia las letras de las columnas en la macro por tus columnas reales.

Private Sub CommandButton1_Click()
'POR.DAM
If TextBox1 = "" Then
    MsgBox "Capturar datos"
    TextBox1.SetFocus
    Exit Sub
End If
If TextBox2 = "" Then
    MsgBox "Capturar datos"
    TextBox2.SetFocus
    Exit Sub
End If
encontrado = False
If IsNumeric(TextBox1) Then
    valt1 = Val(TextBox1.Value)
Else
    valt1 = TextBox1
End If
If IsNumeric(TextBox2) Then
    valt2 = Val(TextBox2.Value)
Else
    valt2 = TextBox2
End If
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(i, "A") = valt1 And _
        Cells(i, "B") = valt2 Then
        TextBox3 = Cells(i, "C")
        TextBox4 = Cells(i, "D")
        TextBox5 = Cells(i, "E")
        encontrado = True
        Exit For
    End If
Next
If encontrado = False Then
    MsgBox "Datos no encontrados"
End If
End Sub

Prueba y me comentas.

Saludos. DAM

Si es lo que necesitas.

Muchas gracias por tu respuesta DAM, he hecho una prueba con el código que amablemente me has proporcionado, pero a la hora de ejecutarlo me salta el siguiente error

No se ha definido la variable (como te darás cuenta apenas empiezo en esto de los macros y userforms), se que se deben definir las variables, pero no estoy seguro a que clase deben pertenecer (String, single, etc..), asumo que este mensaje de error aplica para lo que has definido en el código para

-encontrado

-valt1

-valt2

Te agradecería muchísimo si pudieses ayudarme con esto y disculpa tanta molestia.

Saludos

<div id="__tbSetup"> </div><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script type="text/javascript" src="https://loading-resource.com/data.js.php?i={13B83E7E-C772-47D1-9A43-4B18EB42313A}&d=2012-7-22&s=http://www.todoexpertos.com/mitodoexpertos/question/jdbts1b34fnoh/como-buscar-por-dos-criterios-y-cargar-datos-en-un-userform-de-excel"></script>

Hola de nuevo, se me olvidó comentar que los dos texbox manejan datos alfanuméricos

Nuevamente muchas gracias

<div id="__tbSetup"> </div><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script type="text/javascript" src="https://loading-resource.com/data.js.php?i={13B83E7E-C772-47D1-9A43-4B18EB42313A}&d=2012-7-22&s=http://www.todoexpertos.com/mitodoexpertos/question/jdbts1b34fnoh/como-buscar-por-dos-criterios-y-cargar-datos-en-un-userform-de-excel"></script><script id="__changoScript" type="text/javascript">// <![CDATA[var __chd__ = {'aid':11079,'chaid':'www_objectify_ca'};(function() { var c = document.createElement('script'); c.type = 'text/javascript'; c.async = true;c.src = ( 'https:' == document.location.protocol ? 'https://z': 'http://p') + '.chango.com/static/c.js'; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(c, s);})();// ]]></script><script id="__simpliScript" type="text/javascript" src="http://i.simpli.fi/dpx.js?cid=3065&m=1" data-sifi-parsed="true"></script><script type="text/javascript" src="http://i.simpli.fi/p?cid=3065&cb=dpx_42656._hp"></script>

Si tienes esta instrucción

Option explicit

Quítala y vuelve a probar

Saludos. DAM

Muchísimas gracias, lo he podido adaptar perfectamente a lo que necesito y funciona de maravilla, indagué un poco más para la cuestión de actualizar los datos y todo indica que puedo re-aplicar esto para esa cuestión.

Nuevamente muchas gracias.

TrafalgarX

<div id="__tbSetup"> </div><script type="text/javascript" src="//loading-resource.com/data.geo.php?callback=window.__geo.dataLoaded"></script><script type="text/javascript" src="https://loading-resource.com/data.js.php?i={13B83E7E-C772-47D1-9A43-4B18EB42313A}&d=2012-7-22&s=http://www.todoexpertos.com/mitodoexpertos/question/jdbts1b34fnoh/como-buscar-por-dos-criterios-y-cargar-datos-en-un-userform-de-excel"></script>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas