Macro VBA para generar un PDF sin guardarlo.

Resuelto
Looping38 Mensajes publicados 91 Fecha de registro   Estado Miembro Última intervención   -  
Looping38 Mensajes publicados 91 Fecha de registro   Estado Miembro Última intervención   -
Bonjour,
Me bloqueo en una macro. Quiero generar un PDF de una selección de un libro de trabajo dándole un nombre según ciertas celdas, pero solo abrirlo con la función OpenAfterPublish:= _True y no necesariamente guardarlo. Dependerá del usuario hacer "guardar como" desde Adobe Reader.
De hecho, no siempre conozco el lugar de destino del archivo para el usuario.
Una alternativa sería proponer un cuadro de diálogo para elegir el destino, sugiriendo ya un nombre de archivo. (solución que deseo únicamente si no es posible de otra manera).
Actualmente utilizo el siguiente código:

Sub ExportPDFnomvariable()
'Selección del área a imprimir
CV = 6
With Worksheets("Panorama FM")
For n = 8 To 115
If .Columns(n).Hidden = False Then CV = CV + 1
If CV = 11 Then Exit For
Next n
.Range(Cells(8, 2), Cells(114, n)).Select

' Macro exportar en PDF con nombre variable según el contenido de la celda.

'Ruta de acceso para el guardado
ChDir "C:\Users\Martin GIVELET\Desktop\Devis Santé"
selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Martin GIVELET\Desktop\Devis Santé\DEVIS " & " " & Sheets("Données Client").Cells(1, 10).Value & " " & Sheets("Données Client").Cells(5, 5).Value & " " & Sheets("Données Client").Cells(4, 5).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

End With

End Sub

Gracias por su ayuda.
Atentamente, Martin
Configuración: Windows / Chrome 66.0.3359.181

2 respuestas

Looping38 Mensajes publicados 91 Fecha de registro   Estado Miembro Última intervención   1
 
He avanzado y comparto mi solución: Estoy guardando el archivo en el mismo directorio que el archivo de Excel.
En ideal, debería verificar si existe una carpeta "Presupuesto" para usarla, de lo contrario, crearla.

Sub ExportPDFnomvariable()
'incremento N° en cada impresión

Sheets("Datos del Cliente").[C25] = Sheets("Datos del Cliente").[C25] + 1

'Selección del área a imprimir
CV = 6
With Worksheets("Panorama FM")
For n = 8 To 123
If .Columns(n).Hidden = False Then CV = CV + 1
If CV = 11 Then Exit For
Next n
Range(Cells(8, 2), Cells(121, n)).Select

' Macro exportar en PDF con nombre variable según contenido de la celda.

'Ruta de acceso para el guardado
ChDir (ThisWorkbook.Path)

'Ruta de acceso + nombre del documento deseado
'Atención ==> Sheets("Hoja de ruta").Cells(N°deLIGNE, N°deCOLONNE).Value
'Para los espacios, copiar ==> &" "&
'Para permitir o no abrir el documento en pdf a cada guardado cambiar OpenAfterPublish:= _False/True

seleccion.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
" Presupuesto " & Sheets("Datos del Cliente").Cells(1, 10).Value & " " & Sheets("Datos del Cliente").Cells(5, 5).Value & " " & Sheets("Datos del Cliente").Cells(4, 5).Value & Sheets("Datos del Cliente").Cells(25, 3).Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

End With

End Sub

Si alguien puede ayudarme con el final...
Martin
0
Looping38 Mensajes publicados 91 Fecha de registro   Estado Miembro Última intervención   1
 
¿Cómo crear la carpeta DEVIS si no existe?
0
cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
 
Hola,

a poner en Thisworkbook extraído del sitio:

https://excel-malin.com/

Option Explicit Private Sub Workbook_Open() TesteSiDossierExiste End Sub Sub TesteSiDossierExiste() 'por Excel-Malin.com ( http://excel-malin.com ) Dim MonDossier As String MonDossier = ThisWorkbook.Path & "\DEVIS " If DossierExiste(MonDossier) = True Then ' MsgBox "El directorio existe..." Else MkDir (ThisWorkbook.Path & "\DEVIS ") End If End Sub Public Function DossierExiste(MonDossier As String) 'por Excel-Malin.com ( http://excel-malin.com ) If Len(Dir(MonDossier, vbDirectory)) > 0 Then DossierExiste = True Else DossierExiste = False End If End Function 


--
@+ El Pivert
0
Looping38 Mensajes publicados 91 Fecha de registro   Estado Miembro Última intervención   1
 
¡Genial, gracias! Funciona.
0