Copiar datos de un archivo excel y pegarlos en otro.

Hola, te cuento, estoy realizando una tarea y me encontré con algunos topes. El más importante de todos es el siguiente; Necesito seleccionar y después copiar todos los archivos que hay en una hoja de cálculo de un archivo excel y pegarlos en otro archivo (no en otra hoja). Luego ya con los datos en el nuevo archivo necesito volver a seleccioanrlos des una celda específica hasta la última celda y todo lo seleccionado moverlo una columna hacia la derecha.
Serían dos códigos aparte.
Y si es posible que me digas el código de como seleccionar una columna completa. En este caso la columna corresponde a fechas, entonces necesito cambiarles el formato a la fecha a la columna entera, es decir seleccionar la columna entera y darle un formato específico de fecha, por ejemplo (yyyy, mm, dd). Eso es todo, sería de gran ayuda si me respondes. Te pedí 3 códigos apartes. El primero es el más importante. De antemano y cualquiera sea el resultado gracias.

1 respuesta

Respuesta
1
El código para pasar la información a un libro nuevo es el siguiente:
Sub PegarNuevo()
' PegarNuevo Macro
' Macro grabada el 21/07/2008 por Richard Chacón
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
 
Ahora, el código para mover una columna a la izquierda es:
Sub MoveraDerecha()
' MoveraDerecha Macro
' Macro grabada el 21/07/2008 por Richard Chacón
'
'
ActiveWindow.ActivateNext
Range("C1").Select
ActiveCell.Columns("A:A").EntireColumn.Select
Selection.Cut
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
End Sub

Y el código para dar formato a la fecha es este:
Sub FormatoFecha()
' FormatoFecha Macro
' Macro grabada el 21/07/2008 por Richard Chacón
ActiveWindow.ActivateNext
Range("D1").Select
ActiveCell.Columns("A:A").EntireColumn.Select
Selection.NumberFormat = "yyyy/mm/dd"
End Sub

Saludos, [No olvides calificar]
RCh.
Hola, antes que todo muchas gracias por la pronta respuesta, hoy solo mire el código porque llegué tarde y vi el mail, mañana voi a ver si me funciona y te califico sin duda, de cualquier manera estuve leyendo lo que pusiste en el titulo del primer código: pasar la información a libro "nuevo"... el libro tiene hojas en uso la página esta en blanco. Bueno no sé quizás esoy hablando de más y al final es lo mismo, pero te lo comento igual por sea el caso. Bueno te aviso mañana.. Gracias.. saludos!
Hola amigo, al final los revisé igual, voia ir por código:
1) El primero es muy bueno y gracias por darlo aconocer, sin embargo lo que realiza este código es pegar toda la información en un libro nuevo que abre automáticamente. Yo necesito que también copie todo lo que tengo en la hoja de cálculo pero que lo pegue en otro archivo excel específico que yo tengo. (El archivo se llama trabajo), es decir necesito pasar desde el archivo1 "factura" (hoja de cálculo de nombre "plata") a archivo2, "trabajo"(específicamente a la hoha de cálculo llamada "monedas")
2). El código dos, el de mover a la derecha, también tiene un detalle resulta que al moverse a la derecha borra una columna(la última) y eso no me puede pasar.(Pero este no importa)
3) Este es importante y no result, ami me entregan un archivo en donde una de las columnas son fechas en formato de texto y vienen así, ej. 20080701(a, m, d), pero como texto, yo lo tengo que dejar como formato fecha pero de la misma manera(a, m, d).
Bueno disculpa si no fui tan claro y específico antes, pero ahora lo hago, ojalá puedas resolverlo como lo necesito, sería de gran ayuda. Nuevamente gracias.
Cambia el primer codigo por este otro y modifica la ruta para que te funcione:
Sub CopiarDatos()
' CopiarDatos Macro
' Macro grabada el 22/07/2008 por Richard Chacón
Range("A1:C10").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\Usuario\Mis documentos\Trabajo.xls"
Sheets("Monedas").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.ActivateNext
Range("A1").Select
Application.CutCopyMode = False
End Sub

Tambien cambia el 2do código y prueba con este:
Sub InsertaColumna()
' InsertaColumna Macro
' Macro grabada el 22/07/2008 por Richard Chacón
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Range("C1").Select
End Sub

Para lo de la fecha es bueno que lo hagas poniendo esta fórmula a la derecha de la fecha que esta en texto:
=FECHA(IZQUIERDA(A1;4);EXTRAE(A1;5;2);DERECHA(A1;2))
Saludos,
RCh. [Avisame cualquier cosa]
Hola amigo (experto, ¿cuál es tu nombre?).. Bueno te cuento los dos primeros códigos notables, justo lo que quería, el problema está en el tercero, hice lo que eme dijiste y no funciona. Aun así no puedo hacer lo que me dijiste en la hoja donde trabajo porque esta lleno de fórmulas y se agrego algo se me desarma todo. Lo que pasa es que tengo varias columnas con distinta info. Y la cuarta o quinta columna es de fecha y las 2 siguientes que siguen también son de fechas y lo que tengo que hacer es a las tres aplicarles le formato que te digo. Esto lo hago todos los días entonces sería bueno automatizarlo. Como vez no puedo incorporar fórmulas a lado derecho de donde esta escrito las fechas en formato texto porque tengo otras columnas. Si es que no existe otra opción tendría que alterar toda la macro y es mucho trabajo. (De todas manera no funcionó lo que me dijiste. Si tienes alguna respuesta me avisas. No se si calificarte altiro o no antes de que me respondas, me da igual de todas maneras va a ser la mejor opción. Hoy a la noche me conecto de nuevo sino mañana. Saludos¡
Ya te mando un código para la fecha... dame unos minutos.
Ok Cj,
Copia este código:
Sub FormatoFecha()
'
' FormatoFecha Macro
' Macro grabada el 22/07/2008 por Richard Chacón
Dim LaCelda, LaFecha, Izq, Cen, Der
While ActiveCell <> ""
LaCelda = ActiveCell.Value
Izq = Left(LaCelda, 4)
Cen = Mid(LaCelda, 5, 2)
Der = Right(LaCelda, 2)
ActiveCell = Izq & "/" & Cen & "/" & Der
Selection.NumberFormat = "yyyy/mmm/dd"
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
Range("A1").Select
End Sub

Pruébalo y me avisas...
richard, me arroja error en la linea de "offset".. la verdad que no entendí el código, entonces llegue y la ejecute. Te lo comento por si tenía que hacerle alguna adaptación de acuerdo a mi trabajo ( el numero de columna en que se encuentra las fechas, o tenía que seleccionar alguna celdA). En todo caso probé de algunas maneras y no resulto.
Columna 16 columna 17 columna18
20080712 20080923 20080714
Así está cada columna en formato texto y son como 60 mil datos.. y en las tres columnas el formato tiene que ser texto. Hasta el momento selecciono cada columna, botón derecho, formatocelda,(fecha *...) y después.. datos texto en columna, sig, sig, formato amd y aceptar.. esto es lo que quiero cambiar. Me avisas cualquiera sea la respuesta.. gracias.. saludos
Que mas Cj,
Para ejecutar la macro debes estar ubicado en la celda que contiene la primera fecha.
Te recomiendo que crees un Botón para ejecutar la macro.
Si quieres te mando mi archivo para que veas como funciona: [email protected]
Dime tu correo-e

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas