SITIO DEDICADO  SOLO A EXCEL 2007 Y EXCEL 2003, CON TUTORIALES Y EJERCICIOS  RESUELTOS DE  TODOS LOS TEMAS

NIVELES, BASICO, MEDIO Y AVANZADO

Estructura de iteración For-Each-In-Next

 

Hay dos variantes de esta estructura

1-En el primer tipo debemos especificar el rango en el que se realiza la iteración

Como ejemplo hallaremos el promedio del rango A1:D4,dejando el resultado en la celda C7, para este ejemplo pondremos valores enteros

 

Promedio1

Código:

CODIGO

 

La parte más importante del código es

innstruccion

que significa: para cada celda del rango A1:D4 ejecutar el bloque

bloque

y cuando se llega a la última celda del rango, automáticamente se hace la cuenta

cuenta

luego se coloca el resultado en la celda C8

ubicación

Código para copiar y pegar

Sub PromedioRango()

Dim cell As range
Dim sum As Integer
Dim cant As Integer
Dim prom As Variant
For Each cell In range("A1:D4").cells
sum = sum + cell.Value
cant = cant + 1
Next cell
prom = sum / cant
range("C8").Select
ActiveCell.Value = prom

End Sub

2-El segundo tipo utiliza la propiedad CurrentRegion, esta propiedad es muy interesante pues nos permite seleccionar un rango cuyos límites no se conocen ya que CurrentRegion devuelve el rango que rodea a una celda seleccionada.

Podemos decir que CurrentRegion es un rango rodeado por filas y columnas en blanco. En la figura se puede ver dos regiones de este tipo.

REGIONES

Utilizaremos estas regiones para obtener el promedio de las mismas, para lo cual empleamos el código

CurrentRegion

Este código sirve para las dos regiones, siempre y cuando se seleccione una celda de una u otra de acuerdo en cual se quiera calcular el promedio. Por ejemplo si queremos calcular el promedio del rango de la zona de contorno verde el resultado seria

 

RESULTADO

 

En este caso hemos seleccionado la celda “ H3”, pero se podría haber seleccionado cualquier otra

 

La diferencia con el caso 1 es

Codigo región

en la que

Código 2

devuelve el rango de la región actual.

Código para copiar y pegar

Sub PromedioRegion()

Dim cell As range
Dim sum As Integer
Dim cant As Integer
Dim prom As Variant
For Each cell In ActiveCell.CurrentRegion.cells
sum = sum + cell.Value
cant = cant + 1
Next
prom = sum / cant
range("D8").Select
ActiveCell.Value = prom

End Sub

 

 

Copyright © 2009. Diseño CésarDesign
Free Web Hosting

http://www.000webhost.com/