Excel Avanzado

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

Excel Avanzado

Ejemplos de Do While en VBA

La estructura Do While en VBA o también conocida como Do Loop en VBA sirve para repetir un conjunto de instrucciones. Como por ejemplo:

Ejemplo do while

Si bien For en Vba también permite repetir algunas instrucciones, la principal diferencia radica en que en el caso del For se conoce de forma precisa el número de veces que se ejecutará un conjunto de instrucciones, en el caso del Do While en Vba no se conoce el número de veces que la instrucción de va a repetir, estas instrucciones se repetirán hasta el momento en que se cumpla alguna condición.

Sintaxis de Do While VBA

La sintaxis del Do While o Do Loop es como sigue:

Do { While | Until } Condición
[Instrucciones a repetir]
[Exit Do ]
[Instrucciones a repetir]
Loop

Ó también puede ser de la forma

Do
[Instrucciones a repetir]
[Exit Do]
[Instrucciones a repetir]
Loop { While | Until } Condición

Los elementos que se encuentran entre corchetes "[ ]" son opcionales, "Exit Do" provocará que el Do While termine.

Así tendríamos por ejemplo:

Sub EjemploDoWhile()
Dim contador As Integer
Dim numero As Integer
numero = 9
Do Until numero = 10
If numero <= 0 Then Exit Do
numero = numero - 1
contador = contador + 1
Loop
MsgBox "Se alcanzó el valor " & numero & " " & contador
End Sub

Si por algún motivo la instrucción creada es un bucle infinito presione ESC CTRL + ENTER para poder romper el bucle sin tener que cerrar Excel, los siguientes ejemplos de Do While le permitirá tener una idea más clara de cómo emplearlo.

Ejercicios con Do While VBA

Examine los siguientes ejemplos de Do While en VBA, y descubra algunas ideas de como emplearlo.

  1. Barra de progreso VBA
  2. Range.Find en VBA
  3. ActiveSheets
  4. 5 ejemplos de uso de Loop
  5. DO LOOP aplicado a la localización de planta
  6. Do... Loop para evaluar si dar un crédito o no a un solicitante
  7. Do Loop aplicado a repetir indicaciones
  8. Do Loop: Aplicado a la obtención del Brevete
  9. Carrera de Caballos: Uso del With y también el For, Do y el While Wend
  10. DO LOOP en VBA para seleccionar balones reglamentarios
  11. DO LOOP en VBA para inscribir a un postulante a la PNP de acuerdo a su talla.
  12. Do Loop en VBA para detallar la condición de un pasajero
  13. DO LOOP en VBA aplicado al cálculo del porcentaje de proveedores homologados
  14. DO LOOP en VBA para generar datos aleatorios
  15. DO LOOP en VBA para contraseña de usuario
  16. Uso de DO LOOP para el ejercicio del nivel estudiantil (con IF THEN )
  17. Crear un Archivo por cada hoja de Excel
  18. Ejemplo de DO LOOP para solicitar datos
  19. Selección de beneficiarios de un programa social: aplicación del Bucle Do Loop
  20. Excel Avanzado: Do Loop aplicado a la selección de candidatos
  21. Do...Loop aplicado para la actualización de estado de un velocímetro
  22. Estructura Do Loop aplicado al rango de notas
  23. Ejemplo de Do loop para establecer un resultante
  24. Ejemplo de Do...Loop - cálculo de la suma de los N primeros números naturales
  25. Ejemplo de Do Loop aplicado al registro de proyectos
  26. Ejemplo de do loop aplicado al calculo del valor fob exportado
  27. Ejemplo de Do loop aplicado para Rellenos de Información Personal
  28. Ejemplo de uso de Loop, aplicado a los ingresos tributarios del gobierno
  29. Ejemplo de uso de “Do Loop” aplicado al relleno de plantillas de Costos.
  30. Ejemplo de Uso de DoLoop aplicado a llenado Fechas
  31. Ejemplo de uso de Do loop

12 comentarios

  1. ESTA ES LA MEJOR PAGINA PARA APRENDER MA SOBRE ESTE BUCLE.

    GRACIAS!!!!

  2. Muy buena página, me sirve bastante en mi aprendizaje de macros!!....Gracias

  3. hola quiero crear un registro de datos que contenga todos los datos de diferentes pacientes,sera que lo hago en una macro o a través de vb?gracias

    • Los registros de datos se suelen realizar mediante formularios, dale una mirada a

      https://www.excel-avanzado.com/userform-en-excel

  4. Excelente pagina. Mis felicitaciones y agradecimiento

  5. Se vale identar el codigo

  6. Hola a todos
    Estoy trabajando en un proyecto de factura y quiero completar un formulario para la misma, en verdad voy bastante avanzado pero necesito ayuda para la factura.
    Es decir quiero capturar en el formulario los datos del cliente y productos que tengo en las bases de datos para luego Imprimir.
    Gracias!

  7. Hola, tengo una macro que abre outlook para mandar un correo de la informacion visible, es decir, pongo datos y solo que esta filtrado se envia, pero son varios proveedores, quisiera hacer un ciclo donde se filtre, se envie a los correos que tengo en la otra pestana (cambian dependiendo el proveedor) y asi sucesivamente hasta terminar con todos mis proveedores

  8. gracias maestro

  9. Subiteracion()
    Dim x As Double
    Dim y As Double
    Dim z As Double
    x = 1
    a = 4
    b = 6
    c = 9

    z = 4 ^ x + 6 ^ x - (9 ^ x)

    While (z > 0.001)

    x = x + 0.0001
    If z <= 0.001 Then

    Wend
    Msgbox (x)

    End If
    Ayudeme por Favor Donde está el error; el valor buscado es 1.186814....; le agradesco desde yá, su amigo Ing. Tutivén (Ecuador)

    • El resultado sale 1.186699...
      Podrías crear una función z para que vaya cambiando automáticamente su valor cada vez que la llames.
      No es conveniente colocar el Wend del bucle condicionado en IF THEN
      Yo pondría tu programa después de la definición de variables:

      z = 4 ^ x + 6 ^ x - (9 ^ x)

      Do While (z > 0.001)

      x = x + 0.0001
      z = 4 ^ x + 6 ^ x - (9 ^ x)
      If z <= 0.001 Then Exit Do

      Loop
      MsgBox (x)

Deja una respuesta

Los campos requeridos estan marcados con *.