Guardar parte de un libro de excel,...

Hola buenas,.. Es mi primera intervención en este foro,.. Y espero que alguien pueda ayudarme..
Resulta que tengo un libro con 4 hojas,.. La primera hoja es de INICIO y contiene todos los botones de las macros y de llamada a los Userforms,.. Y las otras 3 SOLO almacenan datos.
Lo que actualmente tengo me permite al presionar el BOTÓN,.. Guardar el libro COMPLETO,.. Pero con todas las macros y los Userform,.. Y es demasiado pesado el archivo,.. Y como hay que hacer registro diario de esto,.. En un corto plazo,.. Me ocupara mucho espacio en el disco.
Mi consulta es que si es posible,.. Modificar el código del botón de guardar,.. Para que solo me guarde las hojas 2, 3 y 4 en un archivo diferente y que tenga como nombre el valor de la celda A1 por ejemplo y no el libro completo,.. Para que me ocupe poco espacio lo guardado y el libro ORIGINAL solo lo ocupe para INGRESAR datos y trabajar en el,.. Y los que va guardando,.. Solo información,.. No se si me entienden...
Ojala puedan darme una respuesta positiva a lo solicitado,..
Gracias de antemano,. Y quedo atento a sus comentarios..

1 respuesta

Respuesta
1
Si he entendido bien lo que quieres, este sería el código:
Option Explicit
Sub copiarTodasLasPaginasEnLibroNuevo()
    Dim i As Integer
    Dim libroAct As String
    Dim libroNew As String
    Dim snPrimero As Boolean
    Dim nomPag As String
    Dim nomSalida As String
    ' Guardamos el nombre del libro actual
    libroAct = ActiveWorkbook.Name
    ' El nombre del fichero de salida está en la página INICIO celda A1
    nomSalida = Sheets("INICIO").Cells(1, 1)
    snPrimero = True
    ' Para cada una de las páginas
    For i = ThisWorkbook.Sheets.Count To 1 Step -1
        nomPag = ThisWorkbook.Sheets(i).Name
        If UCase$(nomPag) <> "INICIO" Then ' La página INICIO NO SE ENVIA
            Sheets(i).Select
            If snPrimero Then
                Sheets(i).Copy
                libroNew = ActiveWorkbook.Name
                snPrimero = False
              Else
                Sheets(i).Copy Before:=Workbooks(libroNew).Sheets(1)
            End If
            Windows(libroAct).Activate
        End If
    Next i
    Windows(libroNew). Activate
    ActiveWorkbook. SaveAs nomSalida
End Sub
Muchísimas gracias,... era justo lo que andaba buscando,.. de verdad,.. me funciono a la PERFECCIÓN..!
Trato de mirar el código,.. y no entiendo casi nada,.. pero lo copie y me resulto JUSTO lo que quería,.. te pasaste,.. muchas gracias..
Que estes bien__

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas