Transferir datos desde un libro de excel a otro

Necesito desarrollar un método o código que desde un libro de excel poder transferir una base de datos a otro libro, ya que la base de datos se va modificado constantemente (Agregando, Eliminando y modificando datos), por lo tanto es necesario que las hojas estén enlazadas correctamente de tal forma que si se cambia algo en la original, la otra se modifique automáticamente.

1 respuesta

Respuesta
1

¿Una copia idéntica?
Yo lo haría de ésta manera;
Mi libro original se llama 'Base', crearía otro que se llame 'Base respaldo', en el libro 'Base.xlsm' haría la siguiente macro;

Sub MacroRespaldarInfo()
ChDir "C:\Users\Mi máquina\Downloads"
Workbooks.Open Filename:= _
"C:\Users\Mi máquina\Downloads\Base respaldo.xls"
Windows("Base Respaldo").Activate
Cells.Select
Selection. ClearContents
Windows("Base").Activate
Cells.Select
Selection.Copy
Windows("Base Respaldo").Activate
Range("A1").select
ActiveCell.Paste
Application.CutCopyMode = False
MsgBox "Bases Actualizadas"
End Sub

Así, cuando acabes de modificar tu base principal, le das clic a un botón y automáticamente se actualizará tu base de respaldo.

Si vas a copiar el código, cerciórate de modificar la dirección de donde abrirá el archivo, de igual manera modifica las 'bases' con el nombre que tú decidas, y siempre tiene que estar el respaldo cerrado, de otra forma te diría el mensaje de 'Hay un libro abierto con el mismo nombre...'.

una consulta, pero cada vez que actualice la macro se va a agregar una hoja nueva en el libo ?? o simplemente se va a ir actualizando ?

Se irá actualizando, lo que hace es esto;

Terminas de actualizar la base principal, ejecutas la macro, va a la ubicación del archivo, lo abre, selecciona todas las celdas de la hoja y las elimina para que no tengas que hacerlo tú y no dupliques información, ya que la elimina, se regresa a la base principal, selecciona todas las celdas y las copia, se regresa al respaldo, se posiciona en "A1" y pega los datos tal cual están en la base principal, cuando acaba, te manda un mensaje en Excel de que ambas están actualizadas.

En caso de que quieras que copie una hoja específica y la pegue en otra hoja específica, sólo tendrías que añadirle el código; "Sheets("Nombre de tu hoja")" antes de copiar y antes de pegar, no creo que sea tu caso, pero podrías hacerlo si tuvieras más hojas en tu base y de todas quisieras hacer un respaldo.

De cualquier manera, si tienes dudas, puedes meterte a mi perfil, ahí está mi FB personal y te ayudaré mientras pueda hacerlo.

aaa ya ok. Si tengo que agregar el sheets, por que si poseo más hojas en los libros

¿Pero dónde colocaría los sheets?

Te dejo el código, tú le modificas el nombre de las hojas en donde diga; "Aquí va el nombre de tu hoja".

Sub MacroRespaldarInfo()
ChDir "C:\Users\Mi máquina\Downloads"
Workbooks.Open Filename:= _
"C:\Users\Mi máquina\Downloads\Base respaldo.xls"
'Este codigo lo tendrás que repetir todas las veces que necesites o mas bien, dependiendo de todas las hojas que tengas, copia desde la línea de abajo hasta el final, menos el "MsgBox" ni el "End sub"
Windows("Base Respaldo").Activate
Sheets("Aquí va el nombre de tu hoja").Select
Cells.Select
Selection. ClearContents
Windows("Base").Activate
Sheets("Aquí va el nombre de tu hoja").Select
Cells.Select
Selection.Copy
Windows("Base Respaldo").Activate
Sheets("Aquí va el nombre de tu hoja").Select
Range("A1").select
ActiveCell.Paste
Application.CutCopyMode = False
Range("A1").select
Windows("Base").Select
MsgBox "Bases Actualizadas"
End Sub

Cualquier duda, me informas.

Estimado,

No me resulta el código, no me esta actualizando la base de datos 

Mándame la base a mi correo [email protected] 

Estimado, ya envíe el correo con los archivos

te envie los archivos separados, ya que son pesados

Ya te los re-envié.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas