Jump to content
Sign in to follow this  
CECILIO

¿cómo fijar última columna y última Fila en vba con variable?

Recommended Posts

Buenas tardes aquí solicitando de su apoyo, alguien me puede corregir de favor

tengo los siguientes variables

Tengo establecido estos variables para determinar mi última columna puesto que a veces mi base de datos trae 10 columnas y otras veces mas (cantidad variable) hasta aquí parece funcionar

1.- uc = Sheets("Hoja1").Range(Sheets("Hoja1").Range("a8"), Sheets("Hoja1").Range("a8").End(xlToRight)).Columns.Count

2 .-Tengo esto para determinar mi ultima fila referenciando la ultima columna , no se por que pero en otras columnas no puedo usarlos para determinar mi ultima fila ocupada , me imagino que ha de traer caracteres ocultos o de color blanco pero no  se estampa con mis datos , se estampa 2 filas abajos de donde se encuentra mis datos  y eso no sucede en la ultima columna, sin embargo me arroja error en esta variable


 

ultimf = Range(uc & Rows.Count).End(xlUp).Row

3.deseo ocuparlo en esta parte :

Range("c" & ultimf & ":At" & ultimf).Copy

 

Gracias 

Share this post


Link to post
Share on other sites

saludos @CECILIO, hay varias formas, te muestro dos

nFilas = Worksheets("Hoja1").Range("A4").CurrentRegion.Rows.Count
nColumnas = Worksheets("Hoja1").Range("A4").CurrentRegion.Columns.Count
    
Worksheets("Hoja1").Range("A4").CurrentRegion.Offset(nFilas - 1, 0).Resize(1).Copy

con esto obtienes la ultima fila y la ultima columna del rango continuo asociado a "A4" (en este ejemplo), lo único que debes tener en cueta es que si alguna fila vacia anterioremente tenia datos, y está contigua a la tabla, será tomada en consideracion, igual sucede con la columna.

Un ejemplo, tienes una tabla en el rango "A4:Z39" (todo con datos), y por necesidad borras los datos de la fila 39 (NO eliminas la linea, solo borras los datos), con esta forma, nFilas dira la ultima fila es 39 y NO estaría bien, pues la última fila con datos es la 38 (borraste los datos de la 39)

otra forma sería asi:

nFilas = Worksheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
nColumnas = Worksheets("Hoja1").Cells(4, Columns.Count).End(xlToLeft).Column
    
Worksheets("Hoja1").Range("A4").Offset(nFilas - 4).Resize(1, nColumnas).Copy

en este caso, la columna la buscas en el encabezado de la tabla (siempre tendras datos alli).

y la fila la buscas en la columna donde siempre tengas datos (una columna con datos obligatorios)

y asi te aseguras que siempre copiaras la informacion correcta.

por lo general yo suelo usar esta segunda opción

suerte

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png