Exportar hojas según condiciones en excel

Tengo el siguiente reto por así decirlo

Tengo un libro en excel el cual con macro lo he convertido en un sistema de administración de una bodega, el cual me calcula entradas y salidas de stock, totales, inventario, etc, (el libro contiene 30 Hojas aprox), lo que necesito es que si se puede, una macro la cual exporte 4 de las hojas especificas de este libro a un libro nuevo, pero que aparte que se guarde en un directorio especifico y con un nombre especifico también, en el fondo que genere un nuevo libro con nombre y ubicación especifica (obviamente con el tiempo el nombre varia, como respaldo a quien se le despacho) pero que tenga el mismo formato que ya tiene, ¿es eso posible?

2 respuestas

Respuesta
2

Como no indicas el modo en que se asignará el nombre de carpeta y libro destino, asumiré que se lo indicarás en la misma macro.

Atención que si en la variable Ruta no se coloca la barra al final será necesario colocarla en la instrucción SaveAs. Por ej:

.SaveAs Ruta & "\" & nbre & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

Debes ajustar también la extensión del nuevo libro y la matriz con los nombres de las hojas.

Los comentarios dentro de la macro te guiarán.

Sub creaLibro()
'x Elsamatilde
'AJUSTAR nombres de carpeta de destino y del libro nuevo
Ruta = "C:\"
nbre = "LibroCopia"
'guarda en una matriz el nombre de las hojas a guardar en nvo libro - AJUSTAR NOMBRES
hojitas = Array("Resumen", "fotos", "grafico", "BD")
Sheets(hojitas).Copy
'creamos un nuevo objeto Libro
Set wb = ActiveWorkbook
'el nuevo libro se guarda en la ruta y con nombre previamente asignados
With wb
    'consideramos posible error de carpeta o nbre inválidos
    On Error GoTo singuardar
    'guardamos el libro en la misma carpeta y cuyo nombre es la hoja copiada
    .SaveAs Ruta & nbre & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    'cerramos el nuevo libro
    .Close
    On Error GoTo 0
End With
'se libera el objeto
Set wb = Nothing
MsgBox "Libro creado y guardado.", , "FIN"
Exit Sub
singuardar:
MsgBox "Se presentó un problema al momento de guardar el nuevo libro... deberá guardarlo manualmente.", , "ERROR"
End Sub

(*) macro adaptada del ejemplo presentado en manual 500Macros.

Sdos.

Elsa

El nombre del archivo de salida esta en la celda AZ1 de la hoja más importante, y la ruta siempre es la misma ( C:\AcqProyects\Rgis\Check List) ESA ES LA RUTA

Y estas son las Hojas a exportar

Check List 01
Revisión 01
IngresoPrint01
Ingreso01

El nombre del archivo esta en AZ1 de la hoja Check List01

Entonces quedaría así:

Sub creaLibro()
'x Elsamatilde
'nombres de carpeta de destino y del libro nuevo
Ruta = "C:\AcqProyects\Rgis\Check List\"
nbre = Sheets("Check List 01").[AZ1]
'guarda en una matriz el nombre de las hojas a guardar en nvo libro
hojitas = Array("Check List 01", "Revisión 1", "IngresoPrint01", "Ingreso01")
Sheets(hojitas).Copy
'creamos un nuevo objeto Libro
Set wb = ActiveWorkbook
'el nuevo libro se guarda en la ruta y con nombre previamente asignados
With wb
    'consideramos posible error de carpeta o nbre inválidos
    On Error GoTo singuardar
    'guardamos el libro. Si el nombre no incluye la extensión se la agregamos aquí
    .SaveAs Ruta & nbre & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    'cerramos el nuevo libro
    .Close
    On Error GoTo 0
End With
'se libera el objeto
Set wb = Nothing
MsgBox "Libro creado y guardado.", , "FIN"
Exit Sub
singuardar:
MsgBox "Se presentó un problema al momento de guardar el nuevo libro... deberá guardarlo manualmente.", , "ERROR"
End Sub

Si el dato de AZ1 no incluye la extensión se la tenés que agregar en la instrucción SAVEAS. En mi ejemplo lo guardé como xlsm.

Sdos!

mira por un tema de tiempo aun no he podido aplicarlo, pero tengo una duda, Esto exporta la hoja original o exporta una copia de la hoja ??

Excel copia la hoja completa y la pega en el nuevo libro (así con todas las incluídas en la matriz).

Como si seleccionaras desde el extremo de A1 y pidieras copiar... vas al otro libro y pegar... eso es lo que solicitaste, ¿verdad?

Las originales quedan en el libro... salvo que luego decidas incluir instrucciones para eliminarlas.

Te recuerdo que debes valorar la respuesta para darla por cerrada. Considerando que te desarrollé la macro y además te la personalicé según tu necesidad creo que el tema ya estará resuelto como para que no la dejes pendiente.

La última vez demoraste 4 meses... creo que es momento de largar la botella ;(

Sdos!

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas