Saltar al contenido

Error al crear PDF con macro


Recommended Posts

publicado

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

publicado

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.

publicado

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...

Archivado

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

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    5    1

  • Crear macros Excel

  • Mensajes

    • Hola, El texto citado no lo termine de entender, la celda adyacente a Z27 se relaciona con la fila A28 de la hoja VTL1 y el resultado 35 de su ejemplo, se obtiene de la fila 8, así que para hacer algo sin complicaciones use la columna BM para devolver ese valor. Aprovechando los parámetros de discriminación que uso usted para pintar las celdas de la fila, podría usar esos mismos en una fila auxiliar y así obtener un valor que podría usar como criterio en alguna función, sin tener que meterse al terreno de los colores del condicional, porque no son los mismos que los de la paleta de colores en cuestiones de código. ¿Entonces una solución con macros no es de su interés? Si cambia de opinión podría colocar el tema en esa sección, querer formular con los colores del formato condicional tiene sus características específicas, sin mencionar que se actualice "sola". Aunque bueno, todavía es posible que algún maestro o usuario avanzado le pase una solución con alguna función personalizada al ver que usted tiene 365. Si le interesa una idea sencilla podría usar un rango en la fila 5: =SI.ERROR(COINCIDIR(K7,CALCULOS!$B$4:$B$35,0),SI(O(DIASEM(K7)=7,DIASEM(K7)=1),1,0)) Eso le daría la opción de usar: =SUMAR.SI($K$5:$AY$5,">=1",K8:AY8) Saludines
    • Estimados amigos espero estén bien   Tengo este archivo que me ayuda a llevar las horas trabajadas al que necesito añadir en la Hoja5 (HHE) una fórmula que me cuente las Horas trabajadas en Días de Descanso (fines de semana y feriados), actualmente mediante una Regla de Formato Condicional se resaltan en amarillo el Dia de Semana y la Fecha de los Días de Descanso sin embargo el inconveniente se me presenta con los días feriados que cambian de posición de acuerdo a la fecha y cuando el mes comienza en día domingo por lo cual necesito una fórmula que me permita sumar los Días de Descanso cuando la Fecha que le corresponda este resaltada en Amarillo la sintaxis sería más o menos esta para la primera semana del mes de Enero de 2025: =SI('VTL1'!$I$7=AMARILLO;'VTL1'!$I8;0) + SI('VTL1'!$J$7=AMARILLO;'VTL1'!$J8;0) + SI('VTL1'!$K$7=AMARILLO;'VTL1'!$K8;0) + SI('VTL1'!$L$7=AMARILLO;'VTL1'!$L8;0) + SI('VTL1'!$M$7=AMARILLO;'VTL1'!$M8;0) + SI('VTL1'!$N$7=AMARILLO;'VTL1'!$N8;0) + SI('VTL1'!$O$7=AMARILLO;'VTL1'!$O8;0) Y así sucesivamente para el resto de las semanas, con los datos actuales el resultado esperado para la primera semana (I8:O8) sería 9 horas mientras que para el mes (Fila8) el resultado esperado seria 35 horas estos resultados deben reflejarse en la Celda “$Z7” de la Hoja5 (HHE) de modo tal que una vez haya completado la totalidad de la fórmula para el resto de las semanas del mes la pueda correr de Z27 hasta Z42 VTL - HHE_101128.xlsx
    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.