La instruccion For Each..Next repite instrucciones para cada uno de los objetos de una colección
determinada.
Modificaremos un poco un ejemplo visto anteriormente sobre los colores del libro para
obtener el mismo resultado.
Pero esta vez haremos referencia a colecciones de objetos.
Sub obtener_los_56_colores()
'aqui es conocido que El Excel maneja una paleta de 56 colores
'entonces sabemos tambien que es necesario repetir cierta seccion del codigo
Dim rango_a_pintar As Range
Dim celda As Range
Dim a As Byte
Set rango_a_pintar = Range("A1:A56") 'asignamos el rango que necesitamos
For Each celda In rango_a_pintar 'repetir en cada uno de los elementos de la coleccion
a = a + 1
celda.Interior.ColorIndex = a 'asignar colores del libro a respectiva celda
Next celda
End Sub
Excel VBA Code/Excel Macros / Complementos para Excel/vba macros/vba samples Excel Macros/Excel VBA/Excel Add-ins /Microsoft Excel/Spreadsheet Tools/Charts
domingo, 20 de abril de 2008
Estructuras de Repeticion (Bucles For ..Next )
Las estructuras For...Next las emplearemos en los casos cuando s conocemos el numero de veces que es necesario repetir la ejecuion de determinadas instrucciones
Sub obtener_los_56_colores()
'aqui es conocido que Excel maneja una paleta de 56 colores
'entonces sabemos tambien que es necesario repetir cierta seccion del codigo
Dim a As Byte
Range("A1:A56").Select
For a = 1 To 56 'repetir 56 veces
Selection.Cells(a).Interior.color = ActiveWorkbook.Colors(a)
'asignar colores del libro a la respectiva celda
Next a
End Sub
Sub obtener_los_56_colores()
'aqui es conocido que Excel maneja una paleta de 56 colores
'entonces sabemos tambien que es necesario repetir cierta seccion del codigo
Dim a As Byte
Range("A1:A56").Select
For a = 1 To 56 'repetir 56 veces
Selection.Cells(a).Interior.color = ActiveWorkbook.Colors(a)
'asignar colores del libro a la respectiva celda
Next a
End Sub
Estructuras de Repetición
Las estructuras de repeticion son usadas para ejecutar una o mas instrucciones repetidas veces
Do...Loop
---------
Nos permitira ejecutar un bloque de instrucciones durante un numero indefinido de veces
*Pero mientras una condición sea (TRUE)Verdadera o hasta que llegue hacer verdadera.
El sgte es un ejemplo de una macro que comprueba la condicion sea true al inicio para poder continuar con las repeticiones
'primero ingresa valores en una columna ...por ejemplo de A1 a A5
'ahora colocate sobre la celda A1
Sub EJEMPLO_DO_LOOP() 'verificar condicion al inicio
'esta macro suma el valor de la variable "I"
'al valor de cada celda
'la palabra clave While verifica la condicion sea verdadera'
y continua entonces la ejecucion del bucle
Dim I As Integer
Do While Not IsEmpty(Selection) 'las repeticiones continuran siempre y cuando la seleccion "no 'sea vacio
I = I + 100
If IsNumeric(Selection) Then Selection.Value = Selection.Value + I
Selection.Offset(1, 0).Select
Loop
End Sub
Sub EJEMPLO_DO_LOOP1() 'verificar al final
'esta macro suma el valor de la variable "I" al valor de cada celda
'la palabra clave While verifica la condicion sea verdadera pero al final es decir
'despues de haber ejecutado la menos una vez el bucle
Dim I As Integer
Do
I = I + 100
If IsNumeric(Selection) Then Selection.Value = Selection.Value + I
Selection.Offset(1, 0).Select
Loop While Not IsEmpty(Selection) 'las repeticiones continuran siempre y cuando la seleccion
'no sea vacio
End Sub
Do...Loop
---------
Nos permitira ejecutar un bloque de instrucciones durante un numero indefinido de veces
*Pero mientras una condición sea (TRUE)Verdadera o hasta que llegue hacer verdadera.
El sgte es un ejemplo de una macro que comprueba la condicion sea true al inicio para poder continuar con las repeticiones
'primero ingresa valores en una columna ...por ejemplo de A1 a A5
'ahora colocate sobre la celda A1
Sub EJEMPLO_DO_LOOP() 'verificar condicion al inicio
'esta macro suma el valor de la variable "I"
'al valor de cada celda
'la palabra clave While verifica la condicion sea verdadera'
y continua entonces la ejecucion del bucle
Dim I As Integer
Do While Not IsEmpty(Selection) 'las repeticiones continuran siempre y cuando la seleccion "no 'sea vacio
I = I + 100
If IsNumeric(Selection) Then Selection.Value = Selection.Value + I
Selection.Offset(1, 0).Select
Loop
End Sub
Sub EJEMPLO_DO_LOOP1() 'verificar al final
'esta macro suma el valor de la variable "I" al valor de cada celda
'la palabra clave While verifica la condicion sea verdadera pero al final es decir
'despues de haber ejecutado la menos una vez el bucle
Dim I As Integer
Do
I = I + 100
If IsNumeric(Selection) Then Selection.Value = Selection.Value + I
Selection.Offset(1, 0).Select
Loop While Not IsEmpty(Selection) 'las repeticiones continuran siempre y cuando la seleccion
'no sea vacio
End Sub
Etiquetas:
do loop,
do while verdero,
loop,
Repeticiones Vba Bucles Do while true,
repetir instrucciones,
while
Suscribirse a:
Entradas (Atom)