Excel - Crear PDF en macro excel

 
Vista:

Crear PDF en macro excel

Publicado por yolanda (1 intervención) el 15/01/2008 16:55:48
Hola a todos,

Tengo una hoja excel en la que he incluido un botón para imprimir, en este botón además de imprimir las hojas lo que quiero es crear un archivo PDF con todas las hojas seleccionadas, para guardar las hojas excel en PDF utilizo "Adobe PDF", pero al ir a abrir el documento generado me dice que está dañado.

Las líneas de código que tengo para hacer esto son:

Sheets(1).Select
Application.ActivePrinter = "Adobe PDF en Ne02:"

PDFFileName = "C:Documents and SettingsYolandaMis documentosprueba2.pdf"
ActiveWindow.SelectedSheets.PrintOut PrintToFile:=True, PrToFileName:=PDFFileName

Muchas gracias de antemano y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear PDF en macro excel

Publicado por Sid (1 intervención) el 05/02/2008 13:15:32
Lo k pasa es k el excel se salta la impresora k le has puesto ( en este caso adobe pdf en ne02 ) debido al prtofilename:=pdffilename y lo k krea es un archivo xps.
prueba abrir el supuesto archivo pdf dañado con la extension .xps
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear PDF en macro excel

Publicado por Luis Diego Murillo (1 intervención) el 01/06/2009 23:07:50
Yolanda, estás cometiendo el mismo error que cometí al inicio la primera vez que intenté hacerlo, asi que me di por vencido e intenté otra técnica diferente.

Lo que estás haciendo con ese código es imprimir un archivo plano y ponerle la extensión PDF.

La solución está en exportar el archivo en lugar de imprimirlo. Microsoft tiene una extensión gratuita que debes incluir en Excel (SaveAsPDFandXPS) para que se pueda exportar a PDF.

Cuando la tengas instalada, puedes utilizar de referencia el siguiente código

Sub Imprimir()

'le asigno al archivo la ruta y el nombre del archivo, el cua está en la celda D7 y la extension
Name = "C:Documents and SettingsAdministratorMis documentosavance" & Range("D7").Value & ".PDF" 'Nombre pdf

'el archivo SMA_XL5 debe ser exportado como pdf
Workbooks("SMA_XLS5").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Name, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear PDF en macro excel

Publicado por Fernando (1 intervención) el 16/08/2009 07:03:03
Hola..
Estoy queriendo hacer eso de grabar, o mejor dicho, exportar los datos del formulario que tengo a PDF, pero no me resulta.
Esa es la primera vez que tengo que hacer algo con Visual basic, y la verdad es que aun estoy un poco perdido.
Podria decirme en donde pongo esa informacion? es que no sé si van todas en la misa hoja o si va un pedazo en cada hora (ya sea objetos, formulario,modulo...) otra cosa que no sé si estoy haciendo bien es cambiar los datos, te envio para que vea mejor.

Sub Imprimir()

'le asigno al archivo la ruta y el nombre del archivo, el cua está en la celda F15 y la extension
Name = "E:Prueba" & Range("F15").Value & ".pdf" 'Nome pdf
'el archivo Tsa-1a_xl debe ser exportado como pdf
Workbooks("TSA-1a_XLS").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Name, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

End Sub

bueno, pues eso es lo que hice, y todavia no funciona del todo... ya que no me graba nada en el disco E:

Gracias!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear PDF en macro excel

Publicado por Jorge Africano (1 intervención) el 17/03/2017 06:25:36
Hola a todos, My sugerencia para exportar a pdf desde una macro en excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'crear variable del rango a exportar a pdf
Dim rng As Range
'indicar las celdas de dicho rango
  Set rng = Range("c20:h30")
'indicar que el rango esta asociado al area a impromir de la hoja activa  
  ActiveSheet.PageSetup.PrintArea = rng
 
'definir variable que contenga el nombre para el archivo exportado a pdf
  Dim fileName As String
 'cuyo nombre y ubicacion puede ser directo en el codigo: fileName = "C:\Temp\archivo.pdf"
' o el nommbre depender de algun valor indicado en el valor de una celda, ejemplo A10
  fileName = "C:\Temp\" & Range("a10").Value & "Archivo.pdf"
 
'luego sigue el codigo de exportación
  rng.ExportAsFixedFormat Type:=xlTypePDF, _
   fileName:=fileName, Quality:=xlQualityStandard, _
   includeDocproperties:=True, IgnorePrintAreas:=True, _
   From:=1, To:=1, OpenAfterPublish:=True
 
'nota: si se desea exporta toda la hoja activa, se reemplaza la primera linea del codigo por: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 

espero le sea de utilidad este aporte a alguien que lo requiera, Atentamente Jorge Africano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear PDF en macro excel

Publicado por jose enrique bacab cauich (1 intervención) el 12/10/2019 19:39:25
buenas tardes a todos tengo una macro en la cual se obtiene una hoja en pdf y quiero que cuando cree la hoja de pdf le ponga el nombre de una celda como le hago


crea una hoja con números ejemplo 1 2 3 etc

y lo que quiero es que jale el nombre de una celda

le pregunta es como le hago

agradecería mucho me apoyaran y me manden respuestas en el correo [email protected]

gracias a todos de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dirk
Val: 455
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Crear PDF en macro excel

Publicado por Dirk (166 intervenciones) el 13/10/2019 01:14:29
Hola Jose Enrique, agrega estas 3 línas de código a tu macro o creas una nueva macro:

1: en mi caso exporto una hoja, pero puedes exportar un rango de celdas, normalmente se prepara la hoja seleccionando y dando formato previamente a lo que deseas exportar, tu debes cambiar Hoja3 y la celda B2 con tus datos
1
hoja = Sheets("Hoja3").Range("B2").Value

2: obtienes la ruta y el nombre del archivo PDF
1
fileName = Sheets("Hoja3").Range("B3").Value

3: exportas... con el parámetro OpenAfterPublish puedes abrir el archivo después de exportarlo como para ver si todo salio bien, solo debes colocarlo = True
1
2
3
4
Sheets(hoja).ExportAsFixedFormat Type:=xlTypePDF, _
   fileName:=fileName, Quality:=xlQualityStandard, _
   includeDocproperties:=True, IgnorePrintAreas:=True, _
   From:=1, To:=1, OpenAfterPublish:=False

Salu2
Dirk
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar