Exportar hojas de calculo de número variable a otro libro

Tengo un archivo Excel con varias hojas haciendo las veces de base de datos.

Cada mes pueden "importarse" unos datos, con un numero de referencia. Elimino duplicados de modo que me queden los números de referencia como únicos valores.

Por otro lado tengo una plantilla en la cual poniendo cualquiera de los números de referencia antes mencionados, me muestra los valores que requiero.

Una vez hecho esto, tendría que mover/copiar esa hoja a un nuevo libro de Excel y guardarlo con el nombre de número de referencia.

El caso es que claro, cada mes hay números de referencia diferentes, un mes puede haber 10 y otro 4.

Mi pregunta sería: Si la lista de números de referencia es variable, ¿Qué código puedo usar para que vaya poniendo uno a uno los números de referencia en su casilla correspondiente y me extraiga esa hoja?

Los números de referencia se extraerlos y eliminar sus duplicados con VBA, estarían en la "hoja 1". Para generar la plantilla mencionada, cada número debería copiarse en la hoja llamada "MENU" en la celda "H14".

Automaticamente se completarían los datos en una hoja llamada "PLANTILLA". Precisamente sería esa hoja la que quiero extraer y guardar.

De nuevo la macro volvería atrás y repetiría este procedimiento hasta que no quede ningún número de referencia.

1 respuesta

Respuesta
2

Te anexo la macro

Sub Exportar_Hojas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.StatusBar = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    Set h2 = l1.Sheets("MENU")
    Set h3 = l1.Sheets("PLANTILLA")
    '
    ruta = l1.Path & "\"
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To u
        Application.StatusBar = "Copiando libro : " & i & " de : " & u
        ref = h1.Cells(i, "A")
        h2.Range("H14") = ref
        h3.Copy
        Set l2 = ActiveWorkbook
        Set h21 = l2.Sheets(1)
        h21.Cells.Copy
        h21.Range("A1").PasteSpecial xlValues
        h21.Range("A1").Select
        l2.SaveAs Filename:=ruta & ref & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        l2.Close
    Next
    Application.StatusBar = False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Pon las referencias únicas en la hoja1, en la columna A, empezando en la fila 1.

Los archivos se guardarán en la misma carpeta donde tienes el archivo con la macro.

Cuando ejecutes la macro, en la parte inferior izquierda de excel verás el número de libros copiados.


.

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

.

Avísame cualquier duda

.

Muchas gracias Dante por tu ayuda. Aunque mi hoja tenía algunas variables más, como inicio para hacer lo que quería me ha funcionado correctamente. Gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas