¿Como defino un rango discontinuo?

08/11/2007 - 17:17 por Gabriel | Informe spam
Rango discontinuo.

Tengo un rango de celdas.
Todas ellas, mas de 400, situadas en la misma hoja y en la misma columna y
definidas porque cada una es la anterior mas 41.
A3, A44, A85, A126, A167, ……
¿Cómo puedo definir este rango para plasmarlo en una Macro?

Preguntas similare

Leer las respuestas

#1 Juan M
08/11/2007 - 19:39 | Informe spam
"Gabriel" escribió
Rango discontinuo.

Tengo un rango de celdas.
Todas ellas, mas de 400, situadas en la misma hoja y en la misma columna y
definidas porque cada una es la anterior mas 41.
A3, A44, A85, A126, A167, ..
¿Cómo puedo definir este rango para plasmarlo en una Macro?




Hola Gabriel,

Puedes explicarnos que es lo que quieres hacer con el rango discontinuo?

Puede que una opción válida sea hacer un búcle para recorrer todas las
celdas que necesitas

colorea de rojo las celdas A3 y cada 41

Sub Colorea41()
Dim i As Long
For i = 0 To 40
Range("A3").Offset(i * 41).Interior.ColorIndex = 3
Next i
End Sub

pruebalo en un libro en blanco.

Un saludo,
Juan
Respuesta Responder a este mensaje
#2 Raul Bajo Sanz
09/11/2007 - 00:18 | Informe spam
Definiendo el rango de la forma
'=Hoja1!$A$3;Hoja1!$A$44;Hoja1!$A$85;Hoja1!$A$126;Hoja1!$A$167;etc...' para
400 celdas sería muy pesado, y fácil de cometer errores.

Supongamos que tus valores originales están en la 'Hoja1'. Sólo se me ocurre
agregar una nueva hoja al archivo. En la nueva hoja habría una columna (por
ejemplo la 'A') con un número correlativo que crece de uno en uno hacia
abajo. En la columna B estarían los valores que realmente te interesan y que
se hallarían con la fórmula que pongo más abajo. Esta hoja tendría una tabla
como la siguiente:

id encabezado
1 ÞSREF(Hoja1!$A$3;41*($A2-1);0)
2 (arrastrar la fórmula hacia abajo)
3 etc...
4 etc...
5
6
7
8
9

Saludos,
Raúl Bajo.

"Gabriel" wrote:

http://www.microsoft.com/communitie...el&midöe62e4b-d5cc-4935-8c8b-3de575e2d38e

Rango discontinuo.

Tengo un rango de celdas.
Todas ellas, mas de 400, situadas en la misma hoja y en la misma columna y
definidas porque cada una es la anterior mas 41.
A3, A44, A85, A126, A167, ……
¿Cómo puedo definir este rango para plasmarlo en una Macro?

Respuesta Responder a este mensaje
#3 Gabriel
09/11/2007 - 23:01 | Informe spam
Gracias Juan M por atender mi peticion de ayuda
Mi Macro es:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngFechas As Range
Set rngFechas =
Range("h13,h54,h95,h136,h177,h218,h259,h300,h341,h382,h423,h464,h587,h628,h669,h710,h751,h792,h833,h874,h915,h956,h997,h1038,h1079,h1120,h1161,h1202,h1243,h1284,h1325,h1366,h1407,h1448,h1530,h1571,h1612,h1653,h1694,h1735,h1776,h1817,h1858,h1899,h1940,h1981,h2022")

If Union(Target, rngFechas).Address = rngFechas.Address Then _
Call abrir_calendario

End Sub

Es una macro copiada de otro lugar que permite cuando pulsas sobre la celda
en que quieres introducir una fecha desplegarse un calendario y elegir la
fecha que desees.
Para un numero grande de celdas no funciona y alguien me dijo que utilizara
la propiedad ColorIndex, que yo evidentemente no se.
Creo que tu te estás aproximando bastante a lo que deseo.
Espero con ansiedad tu respuesta
Muchas gracias

"Juan M" wrote:


"Gabriel" escribió
> Rango discontinuo.
>
> Tengo un rango de celdas.
> Todas ellas, mas de 400, situadas en la misma hoja y en la misma columna y
> definidas porque cada una es la anterior mas 41.
> A3, A44, A85, A126, A167, ..
> ¿Cómo puedo definir este rango para plasmarlo en una Macro?
>

Hola Gabriel,

Puedes explicarnos que es lo que quieres hacer con el rango discontinuo?

Puede que una opción válida sea hacer un búcle para recorrer todas las
celdas que necesitas

colorea de rojo las celdas A3 y cada 41

Sub Colorea41()
Dim i As Long
For i = 0 To 40
Range("A3").Offset(i * 41).Interior.ColorIndex = 3
Next i
End Sub

pruebalo en un libro en blanco.

Un saludo,
Juan



Respuesta Responder a este mensaje
#4 Gabriel
09/11/2007 - 23:06 | Informe spam
Muchas gracias Raul pero creo que los tiros no van por ahí

"Raul Bajo Sanz" wrote:

Definiendo el rango de la forma
'=Hoja1!$A$3;Hoja1!$A$44;Hoja1!$A$85;Hoja1!$A$126;Hoja1!$A$167;etc...' para
400 celdas sería muy pesado, y fácil de cometer errores.

Supongamos que tus valores originales están en la 'Hoja1'. Sólo se me ocurre
agregar una nueva hoja al archivo. En la nueva hoja habría una columna (por
ejemplo la 'A') con un número correlativo que crece de uno en uno hacia
abajo. En la columna B estarían los valores que realmente te interesan y que
se hallarían con la fórmula que pongo más abajo. Esta hoja tendría una tabla
como la siguiente:

id encabezado
1 ÞSREF(Hoja1!$A$3;41*($A2-1);0)
2 (arrastrar la fórmula hacia abajo)
3 etc...
4 etc...
5
6
7
8
9

Saludos,
Raúl Bajo.

"Gabriel" wrote:

http://www.microsoft.com/communitie...el&midöe62e4b-d5cc-4935-8c8b-3de575e2d38e

> Rango discontinuo.
>
> Tengo un rango de celdas.
> Todas ellas, mas de 400, situadas en la misma hoja y en la misma columna y
> definidas porque cada una es la anterior mas 41.
> A3, A44, A85, A126, A167, ……
> ¿Cómo puedo definir este rango para plasmarlo en una Macro?
>
Respuesta Responder a este mensaje
#5 Héctor Miguel
10/11/2007 - 04:03 | Informe spam
hola, Gabriel ! (en tanto regresa Juan) :D

el siguiente procedimiento (mismo evento) funcionaria mejor si el usuario no selecciona mas de una celda -?-
(salvo que tu macro de calendaro "trabaje" exclusivamente sobre la ActiveCell) -?-
columna H (# 8) a partir de la fila 13 y en saltos de 41 filas...

Private Const Fila_inicial As Byte = 13, Saltos As Byte = 41, Col_cal As Byte = 8
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> Col_cal Or Target.Row < Fila_inicial Then Exit Sub
If (Target.Row - Fila_inicial) Mod Saltos = 0 Then abrir_calendario
End Sub

saludos,
hector.

__ la consulta original __
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngFechas As Range
Set rngFechas = Range("h13,h54,h95,h136,h177,h218,h259,h300,h341,h382,h423,h464,h587,h628,h669,h710,h751,h792,h833,h874,h915,h956,h997,h1038,h1079,
h1120,h1161,h1202,h1243,h1284,h1325,h1366,h1407,h1448,h1530,h1571,h1612,h1653,h1694,h1735,h1776,h1817,h1858,h1899,h1940,
h1981,h2022")
If Union(Target, rngFechas).Address = rngFechas.Address Then _
Call abrir_calendario
End Sub

Es una macro copiada de otro lugar que permite cuando pulsas sobre la celda en que quieres introducir una fecha
desplegarse un calendario y elegir la fecha que desees.
Para un numero grande de celdas no funciona (...)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida