las estructuras de control: FOR-NEXT; DO-WHILE; DO-LOOP; DO UNTIL,

Estructura for

El bucle FOR NEXT en VBA nos permite en Excel (o cualquier otro lenguaje de programación) repetir una acción un número de veces dado. Su sintaxis es la siguiente:

For CONTADOR = COMIENZO To FINAL [Step VALOR_DE_PASO]

'código

[Exit For]

'código

Next

En este ejemplo tenemos el bucle FOR NEXT en VBA más sencillo. El bucle cuenta de 1 a 10 y va poniendo en una columna el valor del contador.

For CONTADOR = 1 To 10

fila = CONTADOR

Cells(fila, 1) = CONTADOR

Next

Estructura Do-While

No debemos confundir la representación gráfica de la estructura repetitiva Do While ... Loop (Mientras) con la estructura condicional If (Si)

Funcionamiento: En primer lugar se verifica la condición, si la misma resulta verdadera se ejecutan las operaciones que indicamos por la rama del Verdadero.

A la rama del verdadero la graficamos en la parte inferior de la condición. Una línea al final del bloque de repetición la conecta con la parte superior de la estructura repetitiva.

En caso que la condición sea Falsa continúa por la rama del Falso y sale de la estructura repetitiva para continuar con la ejecución del algoritmo.

Estructura Do-Loop

Condición expresada al lado del DO: en este caso la condición se evalua antes de empezar a ejecutarse el bucle.
Condición expresada al lado del LOOP: en este caso la condición se evalua después de ejecutarse el bucle. Tiene como diferencia principal frenta al otro método que en este caso el bucle se ejecutará por lo menos una vez.


Además de poder expresar la condición en estos dos sitios también se puede construir la condición con un enunciado mientras (WHILE) o un enunciado hasta (UNTIL). Las diferencias semanticas de estas dos posibilidades se trasladan también a su manera de funcionar.



Vamos a ver un par de ejemplos de este bucle para comprender su funcionamiento. El ejemplo pide cunstantemente el nombre del autor de la página y no para hasta que el nombre sea "migue". También tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompiéndolo con la sentencia EXIT DO, utilizada para romper bucles.

Dim entrada
entrada = ""

DO WHILE (entrada <> "migue")

entrada = inputbox ("Dime el nombre del autor","seguridad","migue",2,3)

if (entrada = "out") then

msgbox "salgo por la puerta de atras"

exit do

end if

LOOP

Estructura Do Until

* El ciclo del bucle, (acciones dentro del ciclo) son ejecutadas repetidamente hasta que la condición resulta VERDADERA. La repetición continúa siempre y cuando la condición sea FALSA, y termina cuando se hace VERDADERA.






* El ciclo del bucle o las operaciones se ejecutan por lo menos una vez, posteriormente se evalúa la condición que puede resultar verdadera.

Ismael Rivera 2"A" INFO