Macro para crear una copia de un libro activo, cerrar el original y dejar la copia abierta

Alguien me puede ayudar con una macro que al presionar un botón me genere una copia del libro activo y que solo se quede la copia abierta (archivo original se cierre), y que cuando cierren la copia se borre solo dejando el Original.

1 Respuesta

Respuesta
2

Pon el siguiente código en el botón para crear una copia

Sub Crear_Copia()
'Por.Dante Amor
    'crea una copia
    Application.DisplayAlerts = False
    ruta = ThisWorkbook.Path & "\"
    nombre = "copia.xlsm"
    ThisWorkbook.SaveAs ruta & nombre
End Sub

En tu mismo libro "original", pero en los eventos de thisworkbook pon en el siguiente código:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Dante Amor
    With ThisWorkbook
        If InStr(1, LCase(.Name), "copia") > 0 Then
            On Error Resume Next
            .Saved = True
            .ChangeFileAccess xlReadOnly
            Kill .FullName
            .Close False
        End If
    End With
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

Con la primera macro se crea una "copia" de tu libro original, en automático se cierra tu libro "original", solamente tienes en pantalla el libro "copia". Cuando cierres el libro "copia" en automático se borrará. En tu carpeta solamente podrás ver el archivo "original".


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Excelente!! 

Funciona a la perfección solo algunas dudas,

Ejemplo: Si usuario 1 (quien almacena información) tiene abierto el archivo original, llega usuario 2 (consultor de información) y abre el archivo (le aparecerá un mensaje de que el libro esta abierto) y oprime el botón para que haga una copia ¿cerrara el libro original que esta usando el usuario 1? ¿o solo el modo lectura que tiene?

Segunda duda

En caso de que la primera respuesta sea Negativa

En caso de que llegue un usuario 3 y vuelva hacer lo mismo que usuario 2 (abrir el archivo original y hacer una copia) éste ultimo no podrá crear la copia porque el usuario 2 va a tener la copia con el nombre de "copia" y obviamente va arrojar el error de que no se pueden tener dos libros abiertos con el mismo nombre, ¿Se podrá arreglar este problema?

Espero que me entiendas.

Gracias.

Para la Duda 1:

Solamente tengo una computadora, no puedo simular varios usuarios. Pero en teoría solamente cerrará el archivo que tiene en modo lectura. Pero puedes probar con los 2 usuarios y ver qué sucede.

Para la Duda 2:

Lo que podemos hacer es, con el usuario 2 crear la "copia1", con el usuario 3 crear la "copia2", cada que se cierre el archivo eliminará la copia correspondiente.


Si necesitas algo más, con todo gusto te ayudo, valora esta respuesta y crea una nueva con el detalle que necesites.

.

'S aludos. Dante Amor.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas