SITIO DEDICADO  SOLO A EXCEL 2007 Y EXCEL 2003, CON TUTORIALES Y EJERCICIOS  RESUELTOS DE  TODOS LOS TEMAS

NIVELES, BASICO, MEDIO Y AVANZADO

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

 

numeros en columna

el programa VBA es

codigo

 

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

 

resultado final

 

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.

 

 

Copyright © 2009. Diseño CésarDesign
Free Web Hosting

http://www.000webhost.com/