Ejercicios con el bucle Do Until Loop de Vba
El bucle Do Until en VBA para Excel le permite ejecutar repetidamente un bloque de código hasta que se cumpla una determinada condición. Es una herramienta útil para tareas que requieren procesos iterativos hasta que se cumplan criterios específicos o se cumplan condiciones.
Estructura básica:
Do Until condición
' Código que se ejecuta en cada iteración del bucle
Loop
Explicación:
- Do: Inicia el bucle.
- Código: Se ejecutan las instrucciones dentro del bloque de código.
- Until condición: Evalúa la condición al final de cada iteración. Si la condición es falsa, el bucle se repite. Si la condición es verdadera, el bucle termina.
- Loop: Marca el final del bucle.
Ejemplo 1:
Solicitar números al usuario hasta que ingrese un valor negativo:
Dim numero As Double
Do Until numero < 0
numero = InputBox("Ingrese un número: ")
Loop
MsgBox "Ha ingresado un número negativo: " & numero
Ejemplo 2:
Buscar un valor específico en un rango de celdas:
Dim celda As Range
Dim valorBuscado As String
Dim encontrado As Boolean
valorBuscado = InputBox("Ingrese el valor que desea buscar: ")
encontrado = False
Do Until encontrado Or celda Is Nothing
Set celda = NextCell(ActiveCell)
If celda.Value = valorBuscado Then
encontrado = True
MsgBox "El valor " & valorBuscado & " se encontró en la celda " & celda.Address
End If
Loop
If Not encontrado Then
MsgBox "El valor " & valorBuscado & " no se encontró en el rango seleccionado."
End If
Ejemplo 3:
Generar números aleatorios hasta obtener uno que cumpla con una condición:
Dim numeroAleatorio As Double
Dim rangoMinimo As Double
Dim rangoMaximo As Double
rangoMinimo = InputBox("Ingrese el rango mínimo: ")
rangoMaximo = InputBox("Ingrese el rango máximo: ")
Do Until rangoMinimo <= numeroAleatorio And numeroAleatorio <= rangoMaximo
numeroAleatorio = Rnd * (rangoMaximo - rangoMinimo + 1) + rangoMinimo
Loop
MsgBox "Se generó el número aleatorio: " & numeroAleatorio
Recuerda:
- La condición del bucle Do Until se evalúa al final de cada iteración.
- Puedes utilizar sentencias If y estructuras de control dentro del bucle para controlar el flujo del código.
- Es importante que la condición del bucle eventualmente se vuelva verdadera para evitar bucles infinitos.
- Puedes anidar bucles Do Until para crear estructuras de control más complejas.
Excelente video