Excel 2016 VBA esencial

El bucle Do While... Loop en VBA

¡Prueba gratis durante 10 días

nuestros 1198 cursos !

Prueba gratis Mostrar modalidades de suscripción
El bucle Do While...Loop sirve para que el código se mantenga realizando una acción mientras se den algunas circunstancias. Por lo tanto, hay doble automatización, la repetición y la finalización de la misma.

Transcripción

Conozcamos ahora otra estructura repetitiva distinta a "For Next". Se trata de "Do While". Este bucle nos va a permitir estar ejecutando un código mientras se cumpla una condición. Veamos el ejemplo propuesto en pantalla. Vemos que el inicio del bucle es la palabra "Do" seguido de "While", es decir, hacer mientras que la celda activa sea distinta a nada. Es decir, hacer algo mientras que en la celda activa haya algún dato. ¿Y qué es lo que hay que hacer? Pues lo tenemos en la línea de código que está entre el principio y el final del bucle. Es decir, lo que hay que hacer es que tomando como referencia la celda activa nos vamos a desplazar una fila hacia abajo y cero columnas hacia la derecha, y esa celda quedará seleccionada. Y vuelta a empezar, es decir, "Loop", que nos envía de nuevo a "Do While". Vuelve a comprobar si la celda activa, que ahora ya será una celda más abajo, como decíamos, si la celda activa tiene algún dato y si tiene algún dato entonces vuelve a ejecutarse el código y vuelve a seleccionarse la celda de abajo. Y todo el bucle no parará hasta que "ActiveCell" esté vacía. Vamos a comprobarlo volviendo a Excel y situándonos en la primera de éstas celdas. Ahora vamos a ir ejecutando la macro, "DoWhile Loop" y vamos a ver el efecto ejecutando. Ahí lo tenemos. Ha ido seleccionando todas las celdas y sólo se ha detenido cuando ya no ha encontrado ningún dato. Tenemos que decir que hay una forma de ejecutar las macros línea a línea, esto es, ejecutar la macro en modo depuración. Es muy aconsejable cuando queremos saber que es lo que está ocurriendo en cada momento de una macro. Vamos a cambiar las pantallas a este modo. Nos situamos de nuevo en la primera celda y vamos a ejecutar esta macro instrucción a instrucción. Para ello tenemos que presionar F8. Vemos cómo la primera línea queda resaltada en amarillo y si volvemos a presionar F8, ahora el foco salta a la siguiente línea que es la que se va a ejecutar si presionamos de nuevo F8. Vamos a hacerlo, vemos cómo "Range("A1").Select" lo que nos asegura es que la celda A1 quede seleccionada. Por lo tanto, si no hubiéramos tenido esa precaución ya el código lo hubiera hecho por nosotros. Bien, y ahora el foco lo tenemos en la primera línea del bucle. Vamos a ver qué va ocurriendo. El foco ha pasado por la primera línea para leer la condición y ahora presionamos de nuevo F8 y vemos cómo la celda seleccionada ha cambiado y ahora ya es la segunda porque ya se ha ejecutado esta línea de código. Ahora volvemos a presionar F8 y vuelve a empezar el bucle. Vuelve a evaluar si está vacía o no, y como no estaba vacía, vuelve a seleccionarse la celda de abajo. Y así sucesivamente vemos cómo la selección va cambiando en Excel hasta que ahora cuando tiene que evaluar de nuevo ve que ahí ya hay una celda vacía y entonces termina el bucle. Y, por lo tanto, ya también termina la macro.

Excel 2016 VBA esencial

Aprende desde cero el lenguaje VBA con el que podrás automatizar, acelerar muchas tareas cotidianas en Excel y escribir rutinas de código aplicables a tu trabajo cotidiano.

2:26 horas (42 Videos)
Actualmente no hay comentarios.
 

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.