Está en la página 1de 3

Estructura de iteración Do-While-Loop

INTRODUCCION:
Esta es una iteración en la que no sabemos de antemano cuantas veces se repetirá el ciclo al igual
en la estructura While-Wend y como en esta debe haber una condición para salir de el ya que en
caso contrario este se repetiría en forma indefinida. La evaluación de la condición se produce
antes  de entrar al ciclo.
Para explicar Do-Wile-Loop utilizaremos el mismo ejemplo que en la estructura While-Wend.
Vamos a sumar un rango de números que están ubicados en una columna. En la hoja de cálculo
solo debemos poner los números (sin dejar espacios en blanco) . Luego de aplicar la macro el
resultado deberá quedar en la primera celda vacía.
En este caso sumaremos una cantidad indefinida de números naturales los que introducimos en la
columna "D" empezando por la "D1" y finalizando con la introducción del Nº 283226 como se ve en
la figura
 

el programa VBA es
 
Explicación del código (los números representan las líneas de código)
1- Siempre se empieza con Sub seguida del nombre de la macro y 2 paréntesis (SumColumna()).
2- Seleccionamos la celda superior. "D1".
3- Asignamos a la variable “sum” (que es en la que quedará contenido el resultado) el valor de la
celda superior.
4- Esta línea es la condición para entrar o salir del While y quiere decir "hacer mientras la celda
activa no este vacía",
5- Aquí ya entramos en el Do-While donde hay 2 líneas que se repiten hasta que la condición no se
cumpla.
6- La primera línea dentro del While hace bajar una posición la celda seleccionada, de esta forma
podemos acceder a su contenido y la segunda agrega este contenido a la variable "sum".
7-Con Loop salimos o volvemos a entrar al ciclo según se cumpla o no la condición.
8- Una vez que salimos del ciclo colocamos el resultado queda en una celda activa.
9-Tanbien mostramos el resultado mediante un MsgBox (caja de mensajes).
10- Con esta línea se cierra el programa.
 
Código para copiar y pegar
Sub SumaColumna()
Range("D1").Select
Sum = Range("D1")
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Sum = Sum + ActiveCell.Value
Loop
ActiveCell.Value = Sum
MsgBox Sum
End Sub
 
Finalmente una vez que aplicamos la macro, la hoja nos queda
 
 
Se puede ver que los resultados en la celda activa y en la caja de mensajes coinciden y
lógicamenteal dan el mismo resultado que usando la estructura Wile-Wend.

También podría gustarte