Excel Avanzado

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

Excel Avanzado

Selección de beneficiarios de un programa social: aplicación del Bucle Do Loop

| 1 comentario

Los bucles, en general, son códigos que permiten repetir una instrucción varias veces cuando se cumple una condición específica, de modo que se evita escribir numerosos códigos para la misma tarea. Estos bucles pueden ser determinados, si se sabe a priori el número de veces que se repetirá la instrucción, o indeterminados, si es que se desconoce este dato.

Específicamente, el bucle Do Loop pertenece a esta última categoría, es decir es un bucle indeterminado pues repite las instrucciones siempre que la condición sea Verdadera. La sintaxis de este bucle  es como sigue:

            Do while condición

                             instrucciones

             exit do

                            instrucciones

              Loop

Un ejemplo permitirá aclarar el concepto. Se desea hacer una selección de beneficiarios para un programa social que está dirigido a personas que tienen un sueldo menor a 500 soles. Suponiendo que se cuenta con una base de datos inmensa y que no se sabe el número de inscritos para el programa, se puede tener lo siguiente:

En este caso, la base de datos muestra solo 17 personas pero podría ser mucho más. La idea es crear un Userform que contenga un Ventana Desplegable donde se guarde toda la lista de personas que cumplan con la condición de tener un sueldo menor al umbral (500 soles). Esto se logrará por medio de un Botón de Comando llamado "filtrar". El diseño se muestra a continuación:

userform

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

 

De esta manera, el código que se ejecutará al presionar este Botón de Comando será el siguiente:

               Private Sub CommandButton1_Click()

               fila = 2

              Do While Cells(fila, "D") <> ""

               If Cells(fila, "D") < 500 Then
 
              ComboBox1.AddItem (Cells(fila, "C"))
              End If
              fila = fila + 1

              Loop

             End Sub

Siguiendo la sintaxis se puede identificar que la condición de este bucle es "Cells(fila, "D") <> "" y las instrucciones

               If Cells(fila, "D") < 500 Then
               ComboBox1.AddItem (Cells(fila, "C"))
              End If
              fila = fila + 1

Es decir, lo que indica este código es que mientras la celda (2,"D") sea diferente de cero, se añadirá a la Ventana Desplegable la información contenida en esa celda siempre y cuando este valor sea menor a 500. Luego, se añadirá en una unidad la fila situada inicialmente en 2, de modo que ahora se ejecutará el mismo código para la celda (3,"D") luego para la celda (4,"D"), para la celda (5,"D") y así indefinidamente hasta que la condición deje de ser verdadera, es decir, la celda en cuestión esté vacía. El resultado gráfico es como sigue:

Dibujo

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

En conclusión, este bucle ha permitido la selección de beneficiarios de un programa social y a la vez que se almacene esta nueva base de datos en una ventana desplegable.

 

Elaborado por: Jennifer De la Cruz Guillén

Un comentario

  1. Muy interesante.

Deja una respuesta

Los campos requeridos estan marcados con *.