Copiar datos de una hoja excel a otra

Hola amigos, estoy desarrollando una aplicación en excel y necesito ayuda. Tengo un libro abierto con dos páginas, una que se llama Factura y la otra archivo, en la primera puse un botón para que cuando lleno los datos me los traslade a la página de archivo. La macro que tengo es así.
Range("A2:A8").Select
    Selection.Copy
    Sheets("Archivo").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Lo que pasa es que al presionar el botón no me traslada los datos a la Celda A2 como le indico. Me lo hace solamente si yo voy a la página archivo y selecciono primero esa celda, de lo contrario no me traslada nada o me da error y me marca la linea donde dice Range("A2"). Select. Necesito también que la macro me busque la ultima fila vacía para que sea ahí donde me ponga los datos cada vez que presiono el botón y que no se vea el proceso donde cambia de una página a otra.
Agradeceré mucho su ayuda

1 respuesta

Respuesta
1
He creado una macro en Excel 2010 con el código que envías, y funciona perfectamente: selecciona un rango vertical en la hoja "Factura", y lo pega en la hoja "Archivo" (las cual he renombrado previamente), transponiendo la columna en fila. ¡Claro! Siempre y cuando ejecutes la macro desde la hoja "Factura".
Si agregas en la primera linea la selección de la hoja "Factura" entonces asegurarás que la copia se hace efectivamente desde esa hoja.
Sheets("Factura").Select
Range("A2:A8").Select
Selection.Copy
Sheets("Archivo").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True 
Se me ocurre preguntarte: ¿Renombraste la hoja que corresponde a "Archivo"?
En cuanto a lo que pides de ir al final de la lista o última fila vacía, en mi experiencia prefiero insertar en la fila de arriba, pues no he encontrado la forma de ir precisamente al final de la lista, tan solo generando una macro. Prueba el siguiente código.
Sheets("Archivo").Select
Rows("2:2").Select
Selection.Insert

Sheets("Factura").Select
Range("A2:A8").Select
Selection.Copy
Sheets("Archivo").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Factura").Select
Range("A1").Select
Application.CutCopyMode = False

La primera parte (negritas), inserta la fila; la segunda (normal), copia; la tercera (negritas), selecciona la celda activa en la hoja "Factura".
Gracias experto, la respuesta me sirvió perfectamente, sobre todo la parte 2 que es la que más necesitaba para ir agregando datos al archivo y que no me pasara a dicha página sino que siguiera en el formulario de factura. Gracias a personas como usted los que venimos aprendiendo podremos ayudar a otros mañana. Bendiciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas