Hacer copia de un libro de excel entero

Tengo un libro con muchas fórmulas y alguna macro, necesitaría una macro que me hiciese una copia de ese libro para poder compartirla, pero no quiero que vayan fórmulas y macros, solo que fuese los datos y con el mismo formato. Aparentemente los dos libros tienen que ser iguales.

1 respuesta

Respuesta
1

Pon la siguiente macro en tu libro de macros, ejecuta la macro y te creará una copia sin macros y sin fórmulas.

Revisa el archivo resultante

Sub Copiar_Libro()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    nombre = l1.Name
    p = InStrRev(nombre, ".xlsm") - 1
    nombre = Mid(nombre, 1, p)
    l1.Sheets.Copy
    Set l2 = ActiveWorkbook
    For Each h In l2.Sheets
        If h.AutoFilterMode Then h.AutoFilterMode = False
        If h.FilterMode Then h.ShowAllData
        h.Cells.Copy
        h.Range("A1").PasteSpecial xlValues
    Next
    l2.SaveAs ruta & nombre
    l2.Close
    MsgBox "Copia realizada"
End Sub

.

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

.

Avísame cualquier duda

.

Me da un error..

nombre = Mid(nombre, 1, p)

Se para en esta línea...

¿Qué mensaje de error te aparece?

¿Qué versión de excel tienes?

Tu libro con la macro tiene extensión "xlsm"

O podemos intentar poniendo un nombre nuevo a tu archivo nuevo, por ejemplo "libro copia"

Entonces prueba con lo siguiente:

Sub Copiar_Libro()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    nombre = "libro copia"
    'p = InStrRev(nombre, ".xlsm") - 1
    'nombre = Mid(nombre, 1, p)
    l1.Sheets.Copy
    Set l2 = ActiveWorkbook
    For Each h In l2.Sheets
        If h.AutoFilterMode Then h.AutoFilterMode = False
        If h.FilterMode Then h.ShowAllData
        h.Cells.Copy
        h.Range("A1").PasteSpecial xlValues
    Next
    l2.SaveAs ruta & nombre
    l2.Close
    MsgBox "Copia realizada"
End Sub

Después de crear la copia, entra al explorador de windows y renombra el archivo con el nombre que desees.

.

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

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas