En Excel, podemos encontrar formas de verificar si un valor existe dentro de un rango de valores. Por ejemplo, se puede utilizar la función “o”, que devuelve “verdadero” si encuentra el valor deseado. Asimismo, se puede utilizar la función contar.si que devuelve la cantidad de veces que aparece el valor deseado.
Por otro lado, si lo que se requiere es conocer exactamente las celdas donde se encuentra el valor deseado, se debe desarrollar una macro que realice esa búsqueda y los resalte.
Para programar esta macro, primero se deben definir las variables a utilizar.
Se requiere que el usuario ingrese en qué rango se van a buscar los valores y el valor que se desea encontrar. Además, se definen las variables resultado como rango (que es donde se realizará la búsqueda) y contador para determinar cuántas veces se repite este valor. Igualmente, se define la ubicación de la primera búsqueda que servirá para finalizar la búsqueda de valores.
(Para mayor visualización de la imagen, hacer click en la misma)
Después de definir variables, se coloca el código Find donde se indica el rango de búsqueda. Se señala el valor a buscar y la forma de búsqueda.
(Para mayor visualización de la imagen, hacer click en la misma)
Se ha agregado al código, instrucciones que muestran mensajes de acuerdo a las respuestas obtenidas. Con una lógica If…End if se muestra un mensaje dependiendo de cuántas coincidencias encuentre o si no encuentra coincidencias.
Además, se incluye una lógica Do…Loop while, donde se coloca el código FindNext para seguir buscando coincidencias hasta que ya no encuentre más y no repita la ubicación del primer valor. Todos los valores encontrados cambiarán de color de fondo a verde y el color de fuente cambiará a blanco.
Para que el usuario pueda ingresar el rango y el dato que desea buscar, se ha colocado un formulario con los botones Nueva búsqueda y Salir.
Por último, se han colocado dos botones, uno para comenzar la búsqueda y el otro para limpiar la hoja de los colores de búsquedas previas.
(Para mayor visualización de la imagen, hacer click en la misma)
El código utilizado se puede encontrar en :
Cómo buscar un valor en un rango de celdas en VBA
Artículo escrito por: Piero Arbulú Zumaeta
05/11/2013 a las 8:28 pm
una pregunta y si en la celda hay varios valores como por ejemplo un numero "12354-456 y despues un nombre juan silvio, pero yo quiero realizar la busqueda con el codigo de numero, como hago para que se realize esa busqueda.
espero tu respuesta
15/01/2014 a las 12:25 pm
Cordial saludo, con tu ejemplo he realizado un procedimiento, pero tengo un grave error, son varios los datos a buscar, pero en ocaciones los busca y en otras los pasa derecho sin siquiera intentar hacer. Para realizar la busqueda es totalmente necesaria la instruccion que sigue luego de .Find(valorbuscado ya que lo que he hecho es cerrar el parentesis ahi?
gracias
03/06/2014 a las 11:20 am
Ha sido muy útil 🙂 Gracias!
Un saludo
13/07/2014 a las 6:12 pm
Hola, muchas gracias me facilto muchas cosas
12/09/2014 a las 1:32 pm
Hola
Una vez que encuentro un valor, como puedo llevar toda la fila correspondiente a un listbox??
Muchas gracias
27/11/2014 a las 7:19 pm
Excelente muchas gracias!!!!!
23/05/2015 a las 12:59 pm
perdoneme la expresion pero no tengo mas comentario que decir que: que chimba
muchas gracias por el valioso aporte y que Dios te bendiga a usted y a los suyos
feliz dia
23/09/2016 a las 5:00 pm
Muchas gracias. Es de gran ayuda... 🙂
13/10/2016 a las 1:24 pm
ayuda para buscar valor y remplazarlo, como se hace en los inventarios
21/05/2018 a las 3:39 am
es excelente muchas gracias y para llevarlo a un listbox como pregunta juan yo usaria selection y los copiaria a un rango y hay se usaria la propiedad Rousorce para adherir ese rango a mi ListBox esta es muy sencilla y a pedal
21/05/2018 a las 3:42 am
tambien le hice una modificacion al TextBox1 para que a l inicializar el formulario el ya tenga todo el rango de la hoja en caso de que no me importe buscar en toda la hoja asi me ahorro el tiempo en que tengo colocar manualmente el rango y por otra parte de todos modos si quiero colocar un rango simplemente lo coloco y listo
26/02/2019 a las 10:47 am
Hola compañeros una consulta estoy realizando un formulario de búsqueda,
deseo buscar registros por su DNI en otra hoja para que ese registro se guarde en otro formulario como una id que contendrá otra información.
Me pueden ayudar por favor!!
24/08/2019 a las 5:18 pm
Espero y me puedan apoyar. Ya tengo una semana buscando una solucion y no la encuentro. Ocupo CONCATENAR varias celdas pero estas debes estar de acuerdo a 3 criterios: 1.- Que la fecha inicial que sea mayor o igual a la que deseo 2.- Que la fecha final sea menor a la que deseo y 3.- Que dentro de ese rango este un texto que debo especificar ya sea en celda o escrito dentro de la formula.
En pocas palabras concatenar un rango de mi criterio pero que este dentro del rango de fechas