Excel Avanzado

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

Excel Avanzado

Uso de DO LOOP para el ejercicio del nivel estudiantil (con IF THEN )

| 3 comentarios

Do while o también conocida como Do Loop, sirve para repetir un grupo de comandos las veces que queramos siempre y cuando estas condiciones sean verdaderas. La estructura es la siguiente:

Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop

O también

Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition

Se usa para repetir la estructura un número definido de veces, mientras satisfaga la condición impuesta como ya se explicó anteriormente. Debemos de tener en cuenta que sólo se puede probar la condición una sola vez, al principio o al final de la estructura pudiendo usar While o Until según sea necesario pero no ambas al mismo tiempo.

En el siguiente ejemplo explicamos el uso de esta función para una condición if:

Descargar Ejemplo de do loop

1. Para una lista de alumnos de una universidad, se tienen los siguientes datos de acuerdo al número de créditos cursados, notas y nivel de inglés.

tabla de nombres

(Para mayor visualización de la imagen, hacer click en la misma)

2. Lo que se pretende es sacar el nivel estudiantil de cada uno de los alumnos (ya sea tercio superior, quinto superior, o décimo superior) según las siguientes condiciones:

condiciones

(Para mayor visualización de la imagen, hacer click en la misma)

3.Para lograrlo usamos Do while, buscando en la columna 2 todas aquellas celdas que estén llenas (<> “”) y aplicamos la serie de condiciones if, then, endif para cerrar con Loop:

resultado

(Para mayor visualización de la imagen, hacer click en la misma)

 

Elaborado por: Melissa Alarcón

3 comentarios

  1. Buenos días,
    Deseo generar una nueva columna de datos(6) modificando los datos de la columna 5, condicionando los mismos a que si el valor en la columna 4= a un valor del rango G2:G734, el dato en la columna 6 es igual al de la columna 5 menos 10; sino el dato en la columna 6 es igual al de la columna 5. Para esto generé el siguiente macro que les adjunto, el cual funciona para el primer valor que cumple la condición y luego comienza a tomar los valores de la columna 5.
    Entiendo que hay un problema con el if, espero su ayuda. Gracias!
    Sub Ac_mod()
    fila = 2
    Do While (Cells(fila, 5) 0)
    If (Cells(fila, 4)) Range("G2,G734").Value Then
    Cells(fila, 6) = Cells(fila, 5).Value
    End If

    If (Cells(fila, 4)) = Range("G2,G734").Value Then
    Cells(fila, 6) = Cells(fila, 5).Value - 10
    End If

    fila = fila + 1
    Loop

    End Sub

  2. If (Cells(fila, 4)) Range("G2,G734").Value Then

    Le falta el signo =

  3. Buenas Noches,
    Tengo una consulta respecto al uso de Do While, y espero puedan orientarme:

    Necesito obtener a través de esta estructura, la suma de valores de un rango resultante de un número ingresado en un InputBox [el cual determinará el rango (número de celdas en una columna) a sumar en una determinada hoja]; esta suma puede quedar alojada en una celda de la mencionada hoja.

    Agradezco cualquier sugerencia.

    Saludos!

Deja una respuesta

Los campos requeridos estan marcados con *.