Erro de código macro guardar excel y pdf

Tengo una macro que funciona a la perfección, para guardar el archivo en Excel y PDF, mi problema surge que la macro esta programada para guardar la hoja activa, mi problema surge es que no se como modificar para que guarde las hojas 1 y 2.

Adjunto imagen

1 respuesta

Respuesta
1

Te anexo la macro actualizada

Sub Guardar_Hojas()
'Copiar 2 hojas como libro y como pdf
'
    ruta = "C:\trabajo\"
    nombre = Range("C1").Value
    'Poner el nombre de las hojas a copiar
    Sheets(Array("full report", "data participants")).Copy
    'si quieres cambiar la orientación:
    ActiveWorkbook.Sheets("full report").PageSetup.Orientation = xlLandscape
    ActiveWorkbook.Sheets("data participants").PageSetup.Orientation = xlLandscape
    '
    ActiveWorkbook.SaveAs ruta & nombre & ".xlsx"
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & nombre & ".pdf", quality:=xlQualityStandard, _
        includedocproperties:=True, ignoreprintareas:=False, _
        openafterpublish:=False
    ActiveWorkbook.Close
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Dante la macro me funciona, solo un problema.

El PDF se guarda en formato vertical, como puedo ponerlo horizontal


                    

En la macro va la instrucción para pasar la hoja a horizontal.

Entonces, antes de ejecutar la macro deberás cambiar el formato de tu hoja a horizontal.



'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 

Dante si quisiera agregar otra hoja a gardar, ¿la macro seria así?

Sub Guardar_Hojas()

Ruta = "C:\Users\forense\Desktop\PLANILLA CARLOS\GHEP-DVI#2\RESULTADOS RECIBIDOS"
nombre = Range("C1").Value
Sheets(Array("full report", "data participants", "Questionarie")).Copy
ActiveWorkbook.Sheets("data participants").PageSetup.Orientation = xlLandscape
ActiveWorkbook.Sheets("full report").PageSetup.Orientation = xlLandscape
ActiveWorkbook.Sheets("Questionarie").PageSetup.Orientation = xlLandscape
'
ActiveWorkbook.SaveAs Ruta & nombre & ".xlsx"
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & nombre & ".pdf", quality:=xlQualityStandard, _
includedocproperties:=True, ignoreprintareas:=False, _
openafterpublish:=False
ActiveWorkbook.Close False
Windows("GHEP-DVI#2 Results_for participants").Activate
End Sub

Lo que esta en negrita es lo que cambio, pero al ejecutarla me da error

Dante la consulta anterior ya la resolví.

Ahora se me presenta el siguiente conflicto

Tengo esta MACRO:

Sub Guardar_Hojas()
' Guardar Macro
' Acceso directo: CTRL+h
'
Dim nombre As String
Ruta = "C:\Users\forense\Desktop\PLANILLA CARLOS\GHEP-DVI#2\RESULTADOS RECIBIDOS\INFORMES"
nombre = Range("C1").Value
Sheets(Array("full report", "data participants", "Questionaire")).Copy
ActiveWorkbook.Sheets("full report").PageSetup.Orientation = xlLandscape
ActiveWorkbook.Sheets("data participants").PageSetup.Orientation = xlLandscape
ActiveWorkbook.Sheets("Questionaire").PageSetup.Orientation = xlLandscape
'
ActiveWorkbook.SaveAs Filename:=Ruta & nombre & ".xlsx"
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & nombre & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close False
Windows("GHEP-DVI#2 Results_for participants").Activate
End Sub

El conflicto surge que cuando la ejecuto, el archivo no se guarda en la dirección que pretendo:

Ruta = "C:\Users\forense\Desktop\PLANILLA CARLOS\GHEP-DVI#2\RESULTADOS RECIBIDOS\INFORMES"

Además el nombre con el que se guarda no es el que pretendo, que es el dato que se encuentra en la celda C1.

Cuando ejecuto la macro se guarda asi: INFORMESLAB.02 GHEP - DVI#2 0, la palabra informes no debería estar, debería quedar: LAB.02 GHEP - DVI#2 0

Agradecería de tu ayuda

Te falta una diagonal \ al final de la ruta:

Ruta = "C:\Users\forense\Desktop\PLANILLA CARLOS\GHEP-DVI#2\RESULTADOS RECIBIDOS\INFORMES\"

Para el nombre del archivo también tienes que poner el nombre de la hoja, tienes esto:

nombre = Range("C1").Value

Debe ser así:

nombre = sheets("Hoja1"). Range("C1").Value

Cambia "Hoja1" por el nombre de la hoja que contiene el valor para nombrar el archivo.


['No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas