Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Cómo buscar un valor en un rango de celdas en VBA

¿Cómo buscar un valor en un rango de celdas en VBA?

| 9 Comments

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.

fig1

(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.

fig2

 

(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.

fig3fig4fig5

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.

fig6

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.

fig7

(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

9 Comments

  1. 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

  2. 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

  3. Ha sido muy útil 🙂 Gracias!

    Un saludo

  4. Hola, muchas gracias me facilto muchas cosas

  5. Hola

    Una vez que encuentro un valor, como puedo llevar toda la fila correspondiente a un listbox??

    Muchas gracias

  6. Excelente muchas gracias!!!!!

  7. 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

  8. Muchas gracias. Es de gran ayuda… 🙂

  9. ayuda para buscar valor y remplazarlo, como se hace en los inventarios

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5