Error en una línea de Macro

Para Dante Amor

Buenas Dante, tengo esta macro que me exporta un libro de excel a pdf.

Me funciona bien si solamente le digo que el nombre con el que me guarde el archivo pdf sea una sola celda.

Yo necesito que me guarde el archivo uniendo varias celdas.

La macro es esta:

Sub Exportar_a_PDF()
'

'
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 \ )

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

' Establecer el rango a exportar, usar solo UNA de las siguientes LINEAS
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

End Sub

La cuestión es Dante, que no consigo hacer que me lo guarde con esas celdas

Me dice:

Se ha producido el error 1004 de ejecución

Error definido por la aplicación o el objeto.

Y me lleva a la línea ...

[NombreArchivo = NombreArchivo & "\" & Sheets("Presupuesto").Range(("J6") & ("C6") & ("D6")).Value]

1 respuesta

Respuesta
1

[Hola

Sustituye la línea por esto

NombreArchivo = NombreArchivo & "\" & Sheets("Presupuesto").Range("J6") & Range("C6") & Range("D6")

Valora para finalizar saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas