Guardar en PDF una hoja de excel con nombre y ruta

Tengo esta macro creada en un archivo excel, pero cuando la ejecuta me aparece el siguiente comando: "Se ha producido el error '5' en tiempo de ejecución: Argumento o llamada a procedimiento no válida". En el momento que le doy a depurar me aparece seleccionado el texto que os marco en negrita:

---

Ub SavePDFMacro2()
nombre = Cells(1, 20).Value
ruta = Cells(2, 20).Value
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    ruta & nombre, Quality:= _
    xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
End Sub
--

¿Me podriáis, por favor, ayudar con este problema?

P.D: Mi objetivo final también sería añadir a esta macro la posibilidad de anexar el pdf generado al  email e incluir un texto de una celda por ejemplo A1=("FACTURA NOVIEMBRE") en el asunto y en el cuerpo del email otro texto escrito por mí en otra celda, ejemplo A2("Adjunto encontraran la factura del mes")

La verdad que sí se pudiera hacer sería genial!

1 Respuesta

Respuesta
1

Soy muy novato en esto pero encontré algo que te puede ayudar.

La macro no es mía pero la modifiqué y la ajusté a mis necesidades.

Pruébate y me cuentas.

Yo utilicé las líneas que llevan delante el asterisco.

Sub Exportar_a_PDF_e_Imprimir()
'
' by Juanjo Benítez
'
Dim NombreArchivo As String
Dim RangoEscogido As Range
Dim pregunta1 As Integer
Dim pregunta2 As Integer
Dim pregunta2a As Integer

' Usar solo una de las dos lineas siguientes
*NombreArchivo = "C:\Facturacion\Base Datos Clientes\Presupuestos" ' si deseas que se grabe en una ruta especifica ( NO incluir ultimo \ )
'NombreArchivo = ActiveWorkbook.Path ' si deseas que se grabe en la ruta actual

' Adaptar esta linea según hoja y la celda donde este el nombre de archivo
*NombreArchivo = NombreArchivo & "\" & Sheets("Presupuesto").Range("J6") & Range("C6") & Range("D6").Value

' Establecer el rango a exportar, usar solo UNA de las siguientes LINEAS
'Set RangoEscogido = Sheets("Presupuesto") ' para exportar toda la hoja
*Set RangoEscogido = Sheets("Presupuesto").Range("A2:J52") ' para exportar solo ese rango

If Left(NombreArchivo, 4) = ".pdf" Then NombreArchivo = NombreArchivo & ".pdf"
Sheets("Presupuesto").Select
Range("A1").Select

' PREGUNTA PARA EXPORTAR EL ARCHIVO
pregunta1 = MsgBox("¿Desea exportar el archivo a PDF?", vbYesNoCancel, "Confirmación para Exportar el archivo a PDF")
If pregunta1 = vbCancel Then Exit Sub
If pregunta1 = vbYes Then
' Esta linea crea el PDF
RangoEscogido.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NombreArchivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "Datos exportados a " & NombreArchivo, vbOKOnly, "INFORME"
End If

' PREGUNTA PARA IMPRIMIR EL ARCHIVO
pregunta2 = MsgBox("¿Desea imprimir el archivo?", vbYesNo, "Confirmación para Exportar el archivo a PDF")
If pregunta2 = vbYes Then
' Solicitar numero de copias
pregunta2a = InputBox("¿Cuantas hojas desea imprimir? (0 para cancelar)", "Parámetro de Impresión")
' Esta linea imprime
If pregunta2a > 0 Then RangoEscogido.PrintOut Copies:=pregunta2a, Collate:=True
End If

End Sub

Muchas gracias Juanjo por tu rápida respuesta, me temo que yo soy más novato que tú.

He intentado a las bravas pegar esa macro en un módulo, y tras varios intentos sigo sin poder imprimir en pdf, ya que me sigue apareciendo el error '5'.

Puede ser que hay algún problema con la macro o con el ordenador?  He visto el mismo problema en otro ordenador que tengo pero éste con distinta versión de excel.

Gracias por la ayuda!

De nuevo amigo... mándame el proyecto si quieres y te lo miro a ver si te puedo ayudar o veo mejor el error

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas