Buscar con 2 textbox en una hoja de excel

Tengo un formulario y tengo el código en vb para buscar un registro al introducir lo buscado en el textbox y mostrarlo, pero no se como hacerlo para buscar el registro con 2 datos
Este es el código para buscar con un textbox, ¿pero cómo lo hago para 2? Gracias!
Private Sub botonBuscar_Click()
Application.ScreenUpdating = False
Sheets("Profesores").Select
Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox4 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox5 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox6 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox7 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox8 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox9 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox10 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox21 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox22 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox23 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox24 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox25 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox26 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox27 = ActiveCell
End Sub

1 respuesta

Respuesta
1
Mmm... ¿el criterio de búsqueda que intentas definir esta basado en 2 variables?
Es decir si no hay resultados por criterio 1, ¿entonces buscar por criterio 2 o necesitas que se cumplan ambos criterios en forma copulativa?
Sí, es de 2 variables pero para una parte del código necesito que se cumplan ambos criterios y para otra parte del código necesito que seas excluyentes, como escribiste tú: si no hay resultados por criterio 1, entonces buscar por criterio 2.
Te agradezco un montón!
En tu macro la búsqueda que realizas esta definida para coincidencia parcial, es decir basta que parte de la cadena contenga el dato busado o sea similar, para que sea evaluada como coincidencia.
En lo relativo a buscar por un criterio y luego por el otro. Te sugiero utilizar la búsqueda ajustado a la cadena que buscas, de esta forma si no hay coincidencia se devolverá el error numero 9, te puedes aprovechar de este error para indicarle a excel que si aparece este error luego de generar la búsqueda por el valor 1 entonces luego busque por el valor 2
algo así como
on error goto err:
Buscar por criterio 1
err: if err.number=9 then busca segun criterio 2
esto busca la coincidencia exacta
        Cells.Find(What:="juan", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
Respecto a realizar búsquedas de una cadena en donde se cumplan criterio de búsqueda 1 y 2 en forma simultantea, bueno... eso es lo mismo que buscar por un solo criterio, ya que si necesitas que se cumplan ambos, se pierde el carácter de individualidad de la variable.
Gracias!
Te molesto de nuevo,¿cómo ocupo este código?
Cells.Find(What:="juan", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
Cuando quiero encontrar datos que se encuentran en diferentes columnas por, por ejemplo en una base de datos de profesores que contenga: nombre, apellido, dirección, teléfono, ¿etc y necesito encontrar por nombre y apellido al mismo tiempo y que arroje el registro en un formulario?
Insisto, debes reducir ambas variables a una ( nombre + apellido) y en base a esa nueva variable realizar la búsqueda, prueba a concatenar ambos datos y sobre esa data realizas la búsqueda, en ese caso debes modificar la linea:
Cells.Find(What:="juan",
en donde  juan debe ser sustituido por el control del formulario ( cuadro de texto)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas