Rango variable

4 envíos / 0 nuevos
Último envío
Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Rango variable

Hola

 

Para seleccionar en código un rango de celdas, se usa RANGE("A1:C3") (por ejemplo)

 

En mi caso, tengo que seleccionar una serie de celdas en la misma fila, pero el número de celdas depende de unos resultados de cálculos. Es decir, conozco la primera celda del rango, pero no la última, que debe ser seleccionada dinámicamente.

 

¿cómo se hace esto?

 

He probado algo así como RANGE("E3:"&activecell.column&"3") pero, lógicamente, me dice "que si quieres arroz, Catalina".

 

Saludos

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 4 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Rango variable

Puedes definir el rango con dos celda, la inicial y la final
algo como esto Range("A1","C3")

por otra parte, puedes referirte a una celda a partir del número de fila y número de columna mediante Cells(nºfila,nºcolumna)

así que puedes referirte a tu rango con algo parecido a esto:

Range("a1", Cells(3, ActiveCell.Column))

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: Rango variable

Muchas gracias. Pensaba que con "Range" había que utilizar los dos puntos para hacer un rango entero, y que si se ponía como tú comentas sólo seleccionaba las celdas A1 y C3.

Buen avance. Lo había resuelto de manera un pelín más complicada:

Range(ActiveCell.Address() & ":" & ActiveCell.Offset(0, 22 - Range("B22").Value - Range("B25").Value - 1).Address()).Merge

Probablemente con tu notación se simplificaría ligeramente:

Range(ActiveCell.Address(),ActiveCell.Offset(0, 22 - Range("B22").Value - Range("B25").Value - 1).Address()).Merge

Teniendo en cuenta que el parámetro de Range debe ser un texto (por eso va entre comillas) o una dirección en formato macro (así le llaman los de Microsoft... )

Por cierto, ya sé que no te gustan las celdas combinadas, pero qué se le va a hacer... me quedan cojonudas, jaja.

Saludos

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 4 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Rango variable

me alegro que funcione.

y sí, me salen manchas en la piel cuando veo celdas combinadas,
pero cada vez son menos intensas, supongo que poco a poco es como un tratamiento para la alergia.

 

------
Ya sé Excel, pero necesito más.