Excel - Rango discontinuo

   
Vista:

Rango discontinuo

Publicado por Juan Diego Rodriguez (6 intervenciones) el 08/02/2010 19:17:05
Requiero recorrer todas las celdas de una SELECCION DISCONTINUA del tipo:

A1:A3,A5,C3:C5

El codigo que anexo funciona cuando es un rango continuo. Esta macro une los contenidos de las celdas separadas de un espacio. La pregunta es que hacer si este es un rango discontinuo.

Function Unir(Seleccion As Range) As Variant
Dim Celda As Variant
For Each Celda In Seleccion
Unir = Unir & " " & Celda.Value
Next
End Function

De antemano muchas gracias por la colaboración
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 JuanC

RE:Rango discontinuo

Publicado por JuanC (1053 intervenciones) el 08/02/2010 22:30:05
Call Unir(Union(Range("A1:A3"), Range("A5"), Range("C3:C5")))

Saludos, desde Baires, JuanC
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:Rango discontinuo

Publicado por Juan Diego Rodriguez (6 intervenciones) el 09/02/2010 00:26:04
JuanC

Requiero recorrer todas las celdas de un rango compuesto por varias áreas

Estuve buscando un poco más y encontré lo siguiente, pero esto no funciona

-------------------------------------------------------------------------------------
Function Unir2(Seleccion As Range) As Variant

Dim a As Integer
a = Seleccion.Areas.Count
Dim Celda As Variant
Dim Area_Simple As Range
For Each Area_Simple In Seleccion.Areas
For Each Celda In Area_Simple
Unir2 = Unir2 & " " & Celda.Value
Next
Next
End Function
---------------------------------------------------------------------------------------

Creo que estoy definiendo mal el objeto seleccion pues la macro funciona con una sola área
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:Rango discontinuo

Publicado por Juan Diego Rodriguez (6 intervenciones) el 12/02/2010 16:05:48
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

RE:Rango discontinuo

Publicado por maicol herney arciniegas (1 intervención) el 22/05/2010 00:03:32
esto no tiene informacion apesta que borren este sitio
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