Seleccion de rango variable

12/11/2008 - 19:27 por rodmac | Informe spam
Saludos:

Tengo una tabla de datos de 30 culumnas por un valor variable de renglones,
es necesario que copiar las ultimas 24 celdas que cada renglon para
colocarlos en otra tabla y al pegarlos debe ser de forma transpuesta.

He intentado colocar como variable el numero de renglon en un "range" pero
me indica que hay errores en el codigo de VB.

.Range(.Cells(22, n3), .Cells(69, n3)).Select donde n3 es el renglon
variable

No se si sea la forma correcta. Me podrian orientar para este inconveniente

saludos

Rodmac
 

Leer las respuestas

#1 Juan Español
12/11/2008 - 21:49 | Informe spam
Saludos rodmac:

Una solución puede ser hacer fijo tu rango variable.
Para ello vamos a hacer que la fila 1 tenga siempre los datos de la última
fila, sea esta la que sea.

Lo primero es saber que columna es "la importante" y si puede haber celdas
en blanco en esa columna.
Si la columna que siempre tiene datos es la A y

suponiendo que NO hay filas en blanco intermedias y que tus datos empiecen
en A3 y pueden llegar hasta A3000

A1=INDIRECTO(DIRECCION(CONTARA($A$3:$A$3000)+2;COLUMNA();1;1))

arrastras hacia la derecha la celda A1 hasta la que quieras.

Ahora en tu código puedes hacer referencia al rango de la fila A y copiarlo
y trasponerlo como quieras.

Con código también se puede hacer:

Si la columna que siempre tiene datos es la A y que
En A2 tienes el ROTULO de la columna
suponiendo que NO hay filas en blanco intermedias y que tus datos empiecen
en A3 y pueden llegar hasta A3000

Este código te sitúa en la última celda ocupada de la columna A

Range("A2").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select

Sin datos más precisos (columna, fila donde empiezan tus datos, rango
máximo, etc. etc.) no se llegar más allá.

Saludos,

Juan Español.

"rodmac" escribió en el mensaje
news:
Saludos:

Tengo una tabla de datos de 30 culumnas por un valor variable de renglones,
es necesario que copiar las ultimas 24 celdas que cada renglon para
colocarlos en otra tabla y al pegarlos debe ser de forma transpuesta.

He intentado colocar como variable el numero de renglon en un "range" pero
me indica que hay errores en el codigo de VB.

.Range(.Cells(22, n3), .Cells(69, n3)).Select donde n3 es el renglon
variable

No se si sea la forma correcta. Me podrian orientar para este inconveniente

saludos

Rodmac

Preguntas similares