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?.
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
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