Saltar al contenido

Error al crear PDF con macro


Recommended Posts

Buenos días,

antes de nada agradecer la ayuda desinteresada de los miembros de este magnífico foro.

Me estoy iniciando en esto de las macros y me ha salido un problemilla que paso a contarles:

Tengo un libro en excel 2007, dentro del cual tengo diferentes pestañas que corresponden a diferentes productos.

La macro en cuestión que estoy usando, tiene como función, imprimir la hoja seleccionada y transformarla de .xls a .PDF guardandome el archivo según un nombre especifico que va variando en funcion del dia, la hora y diferentes datos que coje de una celda en concreto y con una ruta tambien variable en función de una celda, con lo que consigo que todos los usuarios guarden igual y en el mismo lugar.

Hasta aquí todo bien: me guarda en la ruta establecida con el nombre establecido y con "la extensión .PDF". Lo pongo entre comillas, porque si que me lo guarda con esa extensión, pero al intentar abrir el archivo XXXX.PDF, me dice que no es posible abrirlo, que podria estar dañado o no ser un archivo compatible.

Creo que lo que me esta pasando, es que solo estoy asignandole una extensión, no un tipo de archivo, como si le pongo .doc o .joselito....

Por eso les pido ayuda, ya que estoy totalmente perdido.

Aquí les pongo el codigo que he estado usando como primera opción, dandole siempre la misma ruta:

Sub GUARDARCOMOCOBALTBLAUDL2()

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

Sheets("COBALTBLAU").Copy

Archivo = "C:\Users\L0YEG27\Documents\Copia PC L0yeg27\CONTROLES\COLOR\MEDICION DE COLORES\COBALTBLAU\Z5Q 2012\DICIEMBRE Z5Q\" & [a60] & ".PDF"

ActiveWorkbook.SaveAs Archivo

ActiveWorkbook.Close

End Sub

Y aquí, la otra versión (ninguna me funciona) indicandole la ruta que quiero que siga:

Sub GUARDARCOMONEGRODL3()

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

Sheets("PHANTOM").Copy

Sheets("PHANTOM").ExportAsFixedFormat Type:=xlsTypePDF

Archivo = Sheets("PHANTOM").Range("H57").Value & [a60] & ".PDF"

ActiveWorkbook.SaveAs Archivo

ActiveWorkbook.Close

End Sub

Grácias de antemano y perdón por los posibles errores que pueda tener el las expresiones, etc...pero este es un mundo complicadillo :fatigue:

Saludos,

Carlos

Enlace a comentario
Compartir con otras webs

Buenas tardes Carlos,

yo no soy una experta en el tema, pero en mi caso utilizo la siguiente macro y me funciona:

Dim texto1 As String

texto1 = Sheets("Hoja1").Range("a1").Text

Worksheets("INGLES").Range("i1:r195").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Packard Bell\Desktop\Informes\" & texto1 & ".pdf", quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, openAfterpublish:=True

End If

Texto1 es la celda donde tengo puesto el nombre que le quiero dar al archivo pdf.

Filename "C:\Users\Packard Bell\Desktop\Informes\" es la ruta donde voy a guardar el archivo pdf.

En openAfterpublish:=True si se pone True el archivo se abre y se guarda, pero si se pone False el archivo se guarda.

Espero que te sirva para algo. Saludos.

Enlace a comentario
Compartir con otras webs

Buenos días,

agua, gracias por tu ayuda. Desde mi poca experiencia, la instruccin que me aconsejas, es la misma que uso yo en la segunda opción que mas arriba indico, he intentado adaptarla a mis necesidades pero me sigue dando error al intentar abrir el fichero, diciendo que probablemente este dañado.

Lo que he descubierto, es que me lo guarda en la ubicación indicada según el nombre que le asigno y, tambien me lo guarda en "mis documentos" en pdf y si que lo puedo abrir ¡¡¡¡.

¿pero porque me lo guarda tambien en mis documentos?

Estoy superperdido, he llegado a pensar que quizas me falta algun complemento...

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.