Buscarv con más de una respuesta

Lo del ciclo es para recorrer una hoja que contiene más de un dato por código, o sea en una hoja ingreso el código a buscar y ese código en otra hoja esta repetido por veces, entiendo que el buscarv solo trae la primera encontrada y yo los quiero todos. ¿En definitiva como seria la rutina de búsqueda?.
1

1 Respuesta

540.775 pts. Por falta de tiempo para responder como me gusta...
Como decía al final de mi respuesta anterior, efectivamente necesitas una estructura Find - Findnext para hacer lo que pretendes.
Lo que no sé es qué debes hacer cada vez que encuentras una coincidencia.
En la macro siguiente que uso para ejemplificar el ciclo de búsqueda, pinta la celda de color cuando encuentra un valor. Obviamente puedes reemplazar tal acción con la que necesites.
Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código:
Sub BuscarVs()
'variables que debes completar:
CeldaBusq = "G8" 'celda donde está el dato a buscar
deHojaC = "Hoja1" ' Hoja donde está la celda anterior
RangoBusq = "B8:G147" 'Rango donde debe efectuarse la búsqueda
deHojaR = "Hoja2" ' Hoja donde está el rango de búsqueda
aBuscar = Sheets(deHojaC).Range(CeldaBusq).Value
Sheets(deHojaR).Select
Range("A1").Select
With Worksheets(deHojaR).Range(RangoBusq)
Set c = .Find(aBuscar, LookIn:=xlValues)
If Not c Is Nothing Then
PrimCoinc = c.Address
Do
c.Interior.ColorIndex = 39
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> PrimCoinc
Range(PrimCoinc).Select
Else
MsgBox "El valor " & aBuscar & " NO fue encontrado en el rango indicado", vbInformation, "NOSTÁ!"
End If
End With
Reemplaza las variables indicadas al comienzo de la macro, cierra el Editor de VBA y graba el archivo.
Esto, creo, resuelve tu problema, pero puedes volver a preguntarme si fuese necesario
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas