Ir al contenido principal

Estructuras repetitivas en Macros de Excel

Es comun en el trabajo con macros ejecutar una instrucción mas de una vez. Ejemplo se tienen 25.000 registros con nombre y apellido y se quieren seprar aquellos que empiezan con "Lo". La solución que aparece a nuestra vista es repetir la instrución tantas veces como se necesite. ¿No estamos locos?. Para repetir 25.000 veces la misma instrucción. Pues aqui es donde se requiere el uso de estructuras repetitivas que facilite repetir una misma instrucción tantas veces como sea necesario.

Para el presente post solo vamos a hablar de la estructura FOR ... NEXT. Su estructura de funcionamiento se muestra a continuación:

Dim contador as Integer  ' Creación de un contador que va incrementando con cada ejecución
contador = 1
For contador To 25.000     ' Repita las instrucciones desde el valor del contador hasta 25000
       Instrucción a repetir 25000 veces
Next contador      ' Incremente el contador


Algunos ejemplos practicos

Ejemplo 1

Llenar un rango de 19 celdas con valores aleatorios

Sub LlenarRango()
Dim contador As Long
contador = 0
For contador = 0 To 19
    ActiveCell.Offset(contador, 0) = Rnd
Next contador
End Sub


Ejemplo 2

Llenar el rango de las casillas A1..A5 con valores pares consecutivos empezando por el 2.

Sub Pares()
Dim Fila As Integer
Dim i As Integer
Fila = 1
For i=2 To 10 Step 2
    ActiveSheet.Cells(Fila,1).Value = i
    Fila = Fila+1
Next i
End Sub

Otras estructuras repetitivas a considerar.


La siguiente información es tomada literalmente de http://www.xltoday.net/vba_bucles_intro.asp


Bucles Do… Loop
Repite las instrucciones mientras/hasta etc. una condición es TRUE/VERDADERO.

Do while… Loop
Repite las instrucciones mientras una condición es TRUE/VERDADERO.

Do until… Loop
Repite las instrucciones hasta que una condición se convierta en TRUE/VERDADERO.

While… Wend
Igual al bucle Do while… Loop.
 


Comentarios

Entradas más populares de este blog

Ejercicio Condicionales usando Macros en Excel

La toma de decisiones es determinante en la secuencia de ejecución de una macro. Las herramientas que proporciona VBA para la toma de decisiones descansan en los condicionales. Un ejemplo de estructuras condicionales en Excel es la función "SI", la cual permite hacer una prueba lógica y tomar generar dos resultados posibles dependiendo si la prueba lógica es verdadera o falsa. "SI su estatura en metros es superior a 1.5 mts, puede ingresar a la montaña rusa, de lo contrario NO". En la afirmación anterior solo aquellos niños con una estatura superior a 1.5 tendrán acceso al juego mecánico, los demás niños simplemente estarán excluidos del juego hasta que cumplan el requisito de forma imperativa.
El lenguaje de macros permite 3 estructuras condicionales distintas:
a) IIF(prueba_lógica, verdadero, falso). Su resultado obligatoriamente debe asignarse a una variable
variable = IFF(3>1, "Verdadero", "Falso"). El tipo de variable puede ser numero, …

Buscar en Excel usando Desref y Coincidir

Si bien la función BuscarV resulta de gran ayuda a la hora de las búsquedas, existen otras funciones que aunque propiamente no se especialicen en buscar, pueden utilizarse para ejecutar búsquedas. En el post anterior hablamos de Indice y Coincidir, en este post quiero mostrar cómo utilizar la función Desref en compañia de Coincidir. 
Función Desref: regresa un rango a partir de una referencia dada. Este rango puede ser una sola celda o varias celdas
=DESREF(Ref;Filas;Columnas;[Ancho];[Alto])
Argumentos:
Ref: Es la referencia desde la cual desref hará el cálculo de cuantas filas y colunmas voy a incluir en el rango que deseo seleccionar o que requiero obtener como resultado de la función.
Filas: Numero de filas que cuenta desref a partir de Ref. Puede ser un número negativo o positivo. Positivo contará filas hacia abajo y negativo hacia arriba.
Columnas: Numero de columnas que cuenta desref a partir de Ref. Puede ser un número negativo o positivo. Positivo contará columnas a la dere…