Excel - Seleccion.Areas.Count

 
Vista:

Seleccion.Areas.Count

Publicado por Juan Diego Rodriguez (6 intervenciones) el 09/02/2010 21:38:06
La función que requiero hacer requiere contar el numero de áreas de una selección

Requiero pasarle a la función un rango definido asi:

=Contar_areas(A1:A3,C3:C5)

Esta funcion solo funciona si el area es una sola, no funciona si son varias areas

Function Contar_areas(Seleccion As Range) As Variant
Dim a As Integer
a = Seleccion.Areas.Count
Contar_areas = a
End Function

Muchas gracias de antemano a quien me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Seleccion.Areas.Count

Publicado por Abraham Valencia (2415 intervenciones) el 10/02/2010 22:04:12
De primera una observacion (sin ver lo demas), en tu UDF usas un solo parametro para el rango, pero al ingresar la formula en la celda estas mostrando que usas varios rangos, eso es incorrecto. Deberias usar un Array

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seleccion.Areas.Count

Publicado por Juan Diego Rodríguez (6 intervenciones) el 11/02/2010 15:01:14
Abraham

Muchas gracias por responder

El parametro que quiero pasarle a la función es un rango compuesto por varios rangos que no son consecutivos.

Como paso esta información a la función?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Seleccion.Areas.Count

Publicado por Abraham Valencia (2415 intervenciones) el 12/02/2010 04:44:58
Un ejemplo, que se puede mejorar:

Function Contar_areas(ParamArray Seleccion()) As Long
Dim x, y As Long
Application.Volatile True
y = 0
For Each x In Seleccion
y = y + 1
Next
Contar_areas = y
End Function

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seleccion.Areas.Count

Publicado por Juan Diego Rodriguez (6 intervenciones) el 12/02/2010 16:04:57
Ya respondi en el otro foro pero lo hago en este para mantener el hilo del tema

Gracias a todos los del foro y en especial a avalencia

Esta es la fracción del código que recorre todas las celdas de un rango discontinuo

Esta es un ejemplo de macro aparentemente muy obvia, la macro recorre todas las celdas de una selección que puede contener uno o varios rangos discontinuos, para el ejemplo la macro concatena el contenido de las celdas.

En la celda le doy
=Recorrer_Celdas(A1:A3,A5,C3:C4)
Para los datos que le di me debuelve "A B C E x y"

Function Recorrer_Celdas(ParamArray Seleccion()) As String
Application.Volatile True
Dim MiCadena As String
Dim AreaSimple As Variant
Dim Celda As Variant
MiCadena = ""
For Each AreaSimple In Seleccion
For Each Celda In AreaSimple
MiCadena = MiCadena & Celda & " "
Next
Next
Recorrer_Celdas = MiCadena
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar