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:
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.
(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:
(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:
(Para mayor visualización de la imagen, hacer click en la misma)
Elaborado por: Melissa Alarcón
27/08/2019 a las 10:30 am
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
28/08/2019 a las 11:33 am
If (Cells(fila, 4)) Range("G2,G734").Value Then
Le falta el signo =
10/09/2019 a las 11:10 pm
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!