¿Cómo agregar el método buscar siguiente en visual basic para excel?

gracias por los aportes esta es mi duda que no he podido aclarar tengo este formato q gracias a ustedes logre arreglar en una pregunta anterior pero en este formato me toca q colocar códigos o nombres repetidos varias veces
aunque la descripción sea diferente pero lo malo q el código q tengo
solo me busca una ves , no es como en la opción Ctrl + b q te busca las
palabras repetidas
ejemplo
tengo un código 10001 y descripción es caja cuadrada fondo
y tengo otro 10001 y su descripción es caja cuadrada tapa
y otro 10001 y su descripción es caja cuadrada partición
te das cuenta el código es el mismo
si yo pongo el código 10001 solo me encuentra caja cuadrada fondo y las demás no
y
estaba leyendo artículos que si se puede poner el método buscar
siguiente y ahi si me buscaría los 3 códigos no importando q estén
repetidos solo q yo no soy muy bueno para la programación entonces hay
cosas q yo no logro captar bien y no se si me estoy explicando bien ;;
me imagino q el código q tengo siempre serviría en este caso ?
y de nuevo t agradezco por ayudarme con mi primera duda

vuelvo a colocar el código

Private Sub CommandButton1_Click()
'Mod.Por.DAM
'Busca en la hoja1
Set b = Sheets("Hoja1").Range("B:B").Find(TextBox1, lookat:=xlWhole)
If Not b Is Nothing Then
Set h = Sheets("Hoja1")
Else
'busca en la hoja2
Set b = Sheets("Hoja2").Range("B:B").Find(TextBox1, lookat:=xlWhole)
If Not b Is Nothing Then
Set h = Sheets("Hoja2")
Else
MsgBox "CÓDIGO NO ENCONTRADO"
Exit Sub
End If
End If
TextBox2 = h.Range("C" & b.Row).Value
TextBox3 = h.Range("E" & b.Row).Value
TextBox4 = h.Range("D" & b.Row).Value
TextBox5 = h.Range("H" & b.Row).Value
TextBox6 = h.Range("F" & b.Row).Value
TextBox7 = h.Range("G" & b.Row).Value
TextBox8 = h.Range("K" & b.Row).Value
TextBox9 = h.Range("I" & b.Row).Value
TextBox10 = h.Range("J" & b.Row).Value
TextBox11 = h.Range("L" & b.Row).Value
TextBox12 = h.Range("N" & b.Row).Value
TextBox13 = h.Range("O" & b.Row).Value
TextBox14 = h.Range("M" & b.Row).Value
TextBox15 = h.Range("P" & b.Row).Value
TextBox1.SetFocus
End Sub

la pregunta es donde puedo introducir este método para buscar las palabras repetidas?

gracias

1 respuesta

Respuesta
1

Si tienes 3 códigos repetidos, ¿cuál de ellos pondrías en los textbox?

También hay que buscar los códigos en las 2 hojas y si tienes el mismo código en ambas hojas cuál es el que se debe considerar para poner en los textbox?

Si quieres encontrar todos los códigos repetidos, sin importar que estén en una o en varias hojas, entonces el resultado deberías ponerlo en un listbox.

creo q no me explique bien en mi caso hay claves repetidas hasta cien veces solo q las descripciones van cambiando

pero mi plantilla solo me busca el primero q encuentra ya sea en una hoja o en la otra y las claves están regadas en las dos hojas en diferentes filas siempre en la misma columna que este caso seria B en el código de vb q pegue aka es coloco la clave en el textbox1 y la descripción me la divide en los demás texbox y me busca perfectamente pero lo malo q solo me busca la primera opción si yo quiero ver la descripción de la otra clave ya no puedo por q solo una vs busca no es como te dige la opción de buscar de excel ctrl + B q ahi te buscar todos las repeticiones q tenga la hoja

sera q no se puede poner ese método entonces en vb?

tiene q ir un listbox para q funcione==???

espero tu respuesta gracias....

todas las claves q utilizo son validas e importantes perdón se me olvido escribir eso por q me preguntaste cual tengo q considerar para poner en el texbox

Vamos por partes.

1. Quieres poner una clave en el textbox1, ¿correcto?

2. Que la macro busque en la hoja1 el textbox y te llene los textbox2 al textbox15, ¿correcto?

3. Luego qué quieres hacer, ¿presionar un botón y que la macro busque el siguiente código y si encuentra otro código que te llene los textbox2 al textbox15?

ok paso a paso

1 poner la clave texbox en el texbox 1 ;; eso ya esta ya lo tengo ok

2 que la macro busque en la hoja 1 el texbox y llene el resto de los texbox 2 hasta la 15 ;; eso también ya lo tengo incluso me busca en las dos hojas sin inconveniente perfecto por q aka me ayudaron a hacer eso gracias

3 ok ahora bien vengo y coloco la clave en el texbox1 y le doy buscar me aparece la información de lo primero que encuentra correcto ahi estamos bien ,

pero resulta que yo en mi lista tengo otra clave u otras claves con ese mismo numero pero diferente descripción

entonces lo que quiero es que: si yo tengo en mi lista mas claves con el mismo numero va le doy buscar y ya encentro la primera clave veo la descripción de los demás textbox pero no es esa la que quiero, entones le doy buscar otra ves si colocar nada como es el misma clave, le doy buscar me da la segunda información y tampoco es esa la que busco y le doy buscar de nuevo y me da la otra información y asi hasta encontrá la que necesito

sera que se puede hacer eso ??

gracias por la paciencia

Te anexo el código.

Para que funcione tienes que crear una hoja llamada "temporal" y n tu formulario tienes que agregar el CommandButton2.

En el CommandButton1 va este código:

Private Sub CommandButton1_Click()
'Mod.Por.DAM
Set h3 = Sheets("temporal")
h3.Cells.Clear
hojas = Array("Hoja1", "Hoja2")
j = 1
c = 0
For i = LBound(hojas) To UBound(hojas)
     Set h = Sheets(hojas(i))
     Set r = h.Columns("B")
     Set b = r.Find(TextBox1, lookat:=xlWhole)
     If Not b Is Nothing Then
        ncell = b.Address
         Do
             h3.Cells(j, "A") = h.Name
             h3.Cells(j, "B") = b.Row
             c = c + 1
             j = j + 1
             Set b = r.FindNext(b)
         Loop While Not b Is Nothing And b.Address <> ncell
     End If
Next
If c > 0 Then
     h3.Cells(1, "C") = "x"
     CommandButton2_Click
Else
     MsgBox "CÓDIGO NO ENCONTRADO"
End If
TextBox1.SetFocus
End Sub

En el CommandButton2 va este código:

Private Sub CommandButton2_Click()
'Por.DAM
 Set h3 = Sheets("temporal")
 u = h3.Range("C" & Rows.Count).End(xlUp).Row
 If h3.Cells(u, "A") = "" Then
     MsgBox "Ya no hay más coincidencias", vbExclamation, "BUSCAR"
 Else
     h = h3.Cells(u, "A")
     f = h3.Cells(u, "B")
     h3.Cells(u + 1, "C") = "x"
     TextBox2 = Sheets(h).Range("C" & f).Value
     TextBox3 = Sheets(h).Range("E" & f).Value
     TextBox4 = Sheets(h).Range("D" & f).Value
     TextBox5 = Sheets(h).Range("H" & f).Value
     TextBox6 = Sheets(h).Range("F" & f).Value
     TextBox7 = Sheets(h).Range("G" & f).Value
     TextBox8 = Sheets(h).Range("K" & f).Value
     TextBox9 = Sheets(h).Range("I" & f).Value
     TextBox10 = Sheets(h).Range("J" & f).Value
     TextBox11 = Sheets(h).Range("L" & f).Value
     TextBox12 = Sheets(h).Range("N" & f).Value
     TextBox13 = Sheets(h).Range("O" & f).Value
     TextBox14 = Sheets(h).Range("M" & f).Value
     TextBox15 = Sheets(h).Range("P" & f).Value
 End If
End Sub

FUNCIONAMIENTO: Para hacer la primera búsqueda presionas el botón1, para buscar las siguientes coincidencias debes presionar el botón 2

hola
osea que la función no se puede con el mismo botón que ya tengo tengo que tener dos y la hoja temporal no hay que agregar nada dentro hay que dejarla en blanco esa parte no entiendo por que probé y coloco el dato y no busca solo se borra

La Función buscar de excel tiene 2 botones, uno para iniciar la búsqueda y otro para ir al siguiente.

No se puede con el mismo botón, la instrucciones no son las mismas, uno inicia la búsqueda y otro botón busca el siguiente.

La hoja temporal no tienes que poner nada, la utiliza la macro para identificar cuáles son los siguientes registros.

Lo que tu tienes que hacer es poner tu dato en el textbox1 y presionar el primer botón y después presionar el botón2.

Te anexo mi archivo con el que hice pruebas para que veas el funcionamiento.

https://www.dropbox.com/s/imw1haoriiz0kmt/buscar%20varios%20hojas.xlsm

hola

fijate que descargue el archivo que enviaste pero hago lo que indicas ahi y me tira error y me manda para vb que estaré haciendo mal ahi? y me sale

Private Sub CommandButton1_Click() en amarillo

y h3 azul y de ahi no pasa

y no hay una forma para enviar el archivo que tengo va para que tuvieras mas o menos una idea de donde lo quiero aplicar la opcion

Envíame tu archivo y le adapto el código para pasar al siguiente registro

ya envíe el archivo gracias por tu ayuda

buen dia

Listo, archivo enviado

No olvides finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas