alguien experto en macros?

18/01/2006 - 02:06 por byrpa | Informe spam
Estimados amigos figurense que tengo una hoja de excel, que me exporta un
programa, del cual siempre cambia el numero de filas que contiene, y debo de
copiar las ultimas 7 filas a otra hoja, he probado varias cosas y nada,
primero creo la macro le doy fin+flecha abajo y me llega hasta al final,
pero despues le doy siete flecha arriba y todo bien, pero cuando reviso el
codigo, me marca la direccion de las celdas, por lo tanto si aplico esta
macro a otro archivo que tiene diferente numero de filas, nada que ver,
alguien tiene alguna sugerencia?

ya probe con
SendKeys "{UP}", pero es como teclear fin+tecla arriba

Gracias por sus comentarios.

Preguntas similare

Leer las respuestas

#1 KL
18/01/2006 - 02:40 | Informe spam
Hola byrpa,

1) Suponiendo que...

- la hoja importada se encuentra en el mismo libro que el codigo
- la hoja importada se llama Hoja1
- la hoja a donde se pegarian los datos copiados se llama Hoja2
- los registros no pueden tener celdas vacias en la columna [A]

prueba el siguiente codigo:

Sub test()
With Sheets("Hoja1")
.Cells(.Rows.Count, "A").End(xlUp) _
.Resize(7).Offset(-6).EntireRow.Copy _
Sheets("Hoja2").Range("A2")
End With
End Sub

2) Suponiendo que...

- la hoja importada se encuentra en el mismo libro que el codigo
- la hoja importada se llama Hoja1
- la hoja a donde se pegarian los datos copiados se llama Hoja2
- la hoja Hoja1 no contiene ningunos formatos fuera del rango de la tabla

prueba el siguiente codigo:

Sub test()
With Sheets("Hoja1").UsedRange
.Resize(7).Offset(.Rows.Count - 7).EntireRow.Copy _
Sheets("Hoja2").Range("A2")
End With
End Sub

Saludos,
KL


"byrpa" wrote in message news:
Estimados amigos figurense que tengo una hoja de excel, que me exporta un
programa, del cual siempre cambia el numero de filas que contiene, y debo de
copiar las ultimas 7 filas a otra hoja, he probado varias cosas y nada,
primero creo la macro le doy fin+flecha abajo y me llega hasta al final,
pero despues le doy siete flecha arriba y todo bien, pero cuando reviso el
codigo, me marca la direccion de las celdas, por lo tanto si aplico esta
macro a otro archivo que tiene diferente numero de filas, nada que ver,
alguien tiene alguna sugerencia?

ya probe con
SendKeys "{UP}", pero es como teclear fin+tecla arriba

Gracias por sus comentarios.


Respuesta Responder a este mensaje
#2 byrpa
18/01/2006 - 03:10 | Informe spam
KL tu debes ser un mago con excel, los ejemplos que me diste son justo lo
que buscaba, una ultima porque cuando cambio la celda hacia donde se va a
copiar (por ejemplo en lugar de A2, B2), me da error me dice que no tienen
los mismos formatos, y lo he probado en un libro nuevo, unicamente numero de
1 a 17 y lo probe, pero cuando lo cambio por cualquier columna con A (A1,
A15) funciona perfecto?

Gracias KL


"KL" escribio en el mensaje
news:
Hola byrpa,

1) Suponiendo que...

- la hoja importada se encuentra en el mismo libro que el codigo
- la hoja importada se llama Hoja1
- la hoja a donde se pegarian los datos copiados se llama Hoja2
- los registros no pueden tener celdas vacias en la columna [A]

prueba el siguiente codigo:

Sub test()
With Sheets("Hoja1")
.Cells(.Rows.Count, "A").End(xlUp) _
.Resize(7).Offset(-6).EntireRow.Copy _
Sheets("Hoja2").Range("A2")
End With
End Sub

2) Suponiendo que...

- la hoja importada se encuentra en el mismo libro que el codigo
- la hoja importada se llama Hoja1
- la hoja a donde se pegarian los datos copiados se llama Hoja2
- la hoja Hoja1 no contiene ningunos formatos fuera del rango de la tabla

prueba el siguiente codigo:

Sub test()
With Sheets("Hoja1").UsedRange
.Resize(7).Offset(.Rows.Count - 7).EntireRow.Copy _
Sheets("Hoja2").Range("A2")
End With
End Sub

Saludos,
KL


"byrpa" wrote in message
news:
Estimados amigos figurense que tengo una hoja de excel, que me exporta un
programa, del cual siempre cambia el numero de filas que contiene, y debo
de copiar las ultimas 7 filas a otra hoja, he probado varias cosas y
nada, primero creo la macro le doy fin+flecha abajo y me llega hasta al
final, pero despues le doy siete flecha arriba y todo bien, pero cuando
reviso el codigo, me marca la direccion de las celdas, por lo tanto si
aplico esta macro a otro archivo que tiene diferente numero de filas,
nada que ver, alguien tiene alguna sugerencia?

ya probe con
SendKeys "{UP}", pero es como teclear fin+tecla arriba

Gracias por sus comentarios.

Respuesta Responder a este mensaje
#3 KL
18/01/2006 - 03:35 | Informe spam
Hola byrpa,

porque cuando cambio la celda hacia donde se va a copiar (por ejemplo en lugar de A2, B2), me da error me dice que no tienen los
mismos formatos, y lo he probado en un libro nuevo, unicamente numero de 1 a 17 y lo probe, pero cuando lo cambio por cualquier
columna con A (A1, A15) funciona perfecto?



Esto ocurre porque el codigo que te he ofrecido usa la propiedad EntireRow. Cuando se copian filas enteras solo se pueden pegar a
una celda en la columna A o filas enteras.

1) Si ya sabes el numero de columnas de antemano y este numero no varia (digamos 10 columnas), podrias modificar el 1er macro de la
siguiente manera:

Sub test1()
With Sheets("Hoja1")
.Cells(.Rows.Count, "A").End(xlUp) _
.Resize(7,10).Offset(-6).Copy _
Sheets("Hoja2").Range("B2")
End With
End Sub

2) Si el numero de columnas varia, podrias modificar el segundo macro de la siguiente manera:

Sub test2()
With Sheets("Hoja1").UsedRange
.Resize(7).Offset(.Rows.Count - 7).Copy _
Sheets("Hoja2").Range("B2")
End With
End Sub

o modificar el 1er macro de la siguiente manera:

Sub test3()
With Sheets("Hoja1")
Col=.Cells(1,.Columns.Count).End(xlToLeft).Column
.Cells(.Rows.Count, "A").End(xlUp) _
.Resize(7,Col).Offset(-6).Copy _
Sheets("Hoja2").Range("B2")
End With
End Sub


Saludos,
KL
Respuesta Responder a este mensaje
#4 byrpa
18/01/2006 - 04:07 | Informe spam
Gracias KL, te felicito por tener tantos conocimientos, nuevamente gracias,
el codigo funciono a la perfeccion.


"KL" escribio en el mensaje
news:
Hola byrpa,

porque cuando cambio la celda hacia donde se va a copiar (por ejemplo en
lugar de A2, B2), me da error me dice que no tienen los mismos formatos,
y lo he probado en un libro nuevo, unicamente numero de 1 a 17 y lo
probe, pero cuando lo cambio por cualquier columna con A (A1, A15)
funciona perfecto?



Esto ocurre porque el codigo que te he ofrecido usa la propiedad
EntireRow. Cuando se copian filas enteras solo se pueden pegar a una celda
en la columna A o filas enteras.

1) Si ya sabes el numero de columnas de antemano y este numero no varia
(digamos 10 columnas), podrias modificar el 1er macro de la siguiente
manera:

Sub test1()
With Sheets("Hoja1")
.Cells(.Rows.Count, "A").End(xlUp) _
.Resize(7,10).Offset(-6).Copy _
Sheets("Hoja2").Range("B2")
End With
End Sub

2) Si el numero de columnas varia, podrias modificar el segundo macro de
la siguiente manera:

Sub test2()
With Sheets("Hoja1").UsedRange
.Resize(7).Offset(.Rows.Count - 7).Copy _
Sheets("Hoja2").Range("B2")
End With
End Sub

o modificar el 1er macro de la siguiente manera:

Sub test3()
With Sheets("Hoja1")
Col=.Cells(1,.Columns.Count).End(xlToLeft).Column
.Cells(.Rows.Count, "A").End(xlUp) _
.Resize(7,Col).Offset(-6).Copy _
Sheets("Hoja2").Range("B2")
End With
End Sub


Saludos,
KL

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida