Copiar varias hojas y pegarlas como valores a un nuevo libro

Requiero una macro que genere un nuevo libro con las hojas de otro libro.

Buscando una solución, encontré y modifique una macro que hace una parte de lo que necesito, que es copiar solo las hojas cuyos nombres no están citados en esta macro, el problema es que esta macro me genera un libro por cada hoja que copia y yo necesito que me genere un solo libro con las hojas copiadas y ademas que las hojas copiadas tengan solo valores. Consideren que los nombres y la cantidad de hojas que copiare es variable.

Y si no es mucho pedir...

Que la macro también asigne un nombre al nuevo libro, a partir del valor de una celda, en este caso la (B4), de la hoja llamada (Gen) en el libro llamado (F7 Datos), que estará activo, este libro es de donde copiare las hojas.

Aqui esta la macro que estoy usando:

Sub CrearForma7()
Dim hoja As Worksheet
For Each hoja In ActiveWorkbook.Worksheets
If Not hoja.Name Like "Gen" And Not hoja.Name Like "Hoja*" And Not hoja.Name Like "Listado*" Then
hoja.Copy
End If
Next
End Sub

Respuesta
1

Avancemos con tu petición.

En la siguiente respuesta explico cómo crear un form, de esa forma podrás seleccionar las hojas de una lista.

MACRO de excel para imprimir varias hojas de un mismo libro

Después de que hayas creado el form revisa la siguiente para crear el libro:

Macro para desplegar lista y seleccionar hojas para exportar a otro libro de excel

Por último, ya que tu macro haya creado el nuevo libro, me dices; y te apoyo, para pegar las hojas solamente como valores y guardar el libro con el valor de una celda.

Dante Amor, gracias por su pronta respuesta.

Revise las macros que propone, en las cuales no encuentro una parte donde solo copien las hojas que no tengan los nombres que refiere la macro que estoy usando, dado que tengo que ejecutar mas de 400 veces la creación de nuevos libros con diferente información y nombre, me resulta pesado estar seleccionando manualmente las hojas que debo copiar, lo que requiero es que al ejecutar la macro, esta seleccione automáticamente las hojas de diferente nombre a las referidas en la macro del ejemplo que muestro y con ellas genere un nuevo libro.

Pon la siguiente macro en tu libro "F7 Datos", ahí supongo tienes la hoja "Gen" y ahí también tienes las hojas a copiar.

La macro copiará todas las hojas con los nombres diferentes a las condiciones.

Cada hoja será copiada y pegada como valores en el nuevo libro.

Sub CopiarHojas()
'Por.Dante Amor
    Dim hojas()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Gen")
    arch = h1.Range("B4") & ".xlsx"
    n = -1
    For Each hoja In l1.Sheets
        If Not hoja.Name Like "Gen" And _
           Not hoja.Name Like "Hoja*" And _
           Not hoja.Name Like "Listado*" Then
            n = n + 1
            ReDim Preserve hojas(n)
            hojas(n) = hoja.Name
        End If
    Next
    If n > -1 Then
        l1.Sheets(hojas).Copy
        Set l2 = ActiveWorkbook
        For Each nhojas In l2.Sheets
            nhojas.Cells.Copy
            nhojas.Range("A1").PasteSpecial xlValues
        Next
        ActiveWorkbook.SaveAs arch, FileFormat:=xlOpenXMLWorkbook
        ActiveWorkbook.Close
        MsgBox "Hojas copiadas al nuevo libro: " & arch
    Else
        MsgBox "No existen hojas a copiar"
    End If
End Sub

.

.

¡Gracias! Funciona perfecto, me has regalado más horas de sueño... Saludos y gracias nuevamente por compartir sus conocimientos en esta excelente página

Estimado Dante, solo hice una prueba con la macro y funciono bien el día de ayer, hoy trate de avanzar en mi trabajo y resulta que la macro pega los datos del primer libro que genero, aunque el nombre si lo cambia los datos no, me parece que pega lo que se quedo en el porta papeles.

Abuzando de su gentileza le pido por favor que ademas de resolver lo anterior, me ayude a que los archivos  se guarden en la carpeta que llamo (F:\Arrastre 2018\) y que el nombre del archivo se forme a partir de los valores de las celdas "B2" y "B4". De antemano gracias

Puedes revisar los datos de cada hoja de cada libro, y compararlos con el archivo nuevo.

Se queda en el portapapeles, pero cuando cierras excel esa memoria se borra.

Dante, al revisar los archivos, se observa que son los datos del primer archivo que se genero, en todos los casos son los mismos datos, solo con diferente nombre de archivo.

No estoy entendiendo.

La macro copia lo que tienes en tus hojas y las pega en un nuevo libro. No puede pegar los datos de un libro que existió ayer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas