Compartir a través de

Error 1004 en tiempo de ejecución. No se ha guardado el documento. Puede que el documento esté abierto o que se haya encontrado un error al guardar.

Anónimas
2024-06-01T21:57:56+00:00

Me arroja ese mensaje de error, al ejecutar Selection.ExportAsFixedFormat.

Tengo múltiples hojas en el libro (170 apx.) y en cada una de ellas hay un boton con una macro para generar un pdf que se guarda en una carpeta. La rutina funciona perfectamente en todas las hojas, pero me arroja ese error en dos hojas en la que hay celdas con hipervínculos (es la única diferencia que hay entre las hojas). Lo he probado en otra hoja que también tiene hipervínculos y funciona bien

El código es el siguiente, marcado en negrita donde da error,

    Fichero = UCase(Fichero)

    Worksheets(Hoja).PageSetup.Orientation = xlLandscape

    Ruta = ThisWorkbook.Path & "\RECETAS Y MENUS" & Fichero & ".pdf"

    Rutajpg = ThisWorkbook.Path & "\iconoPDF.jpg"

    Receta.Range("A1:K38").Select

Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Ruta, Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

    Worksheets(Hoja).PageSetup.Orientation = xlPortrait

Gracias por anticipado por vuestras aportaciones

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios

16 respuestas

Ordenar por: Muy útil
  1. Anónimas
    2024-06-03T08:33:31+00:00

    Seguramente el problema está en el rango seleccionado.

    Pon un punto de interrupción en la línea Selection y cuando se detenga el código, comprueba que el rango seleccionado es el que quieres (teclea en la ventana inmediato ?Selection.Address)

    ¿Dónde cargas el valor de Receta?

    0 comentarios No hay comentarios
  2. Anónimas
    2024-06-03T07:02:29+00:00

    Hola buenos días lo he probado y tampoco funciona, de hecho he quitado los hipervínculos de todas las celdas (tengo un módulo de verificación que los pone, en el caso de encontrar productos desactualizados y que los quita cuando están actualizados) y tampoco así imprime. Tambien he probado a borrar el contenido de las celdas. Lo único que se me ocurre es que a diferencia de las demás hojas estas dos hojas que me dan el problema, tienen código en la hoja, concretamente una rutina cuando se modifica cualquier celda de la columna A ó 1 y otra para el click en un boton de borrado de la información. No osbtante opino que no debería dar error en VBA, ya que si lo hago a mano, es decir, seleecionando el área de impresión y yendo a Archivo/Imprimir/Pdf, funciona bien. Me resulta muy extraño, ya que con las otras 168 hojas funciona perfectamente.

    0 comentarios No hay comentarios
  3. Anónimas
    2024-06-02T12:21:07+00:00

    Esta respuesta ha sido traducida automáticamente. Como resultado, puede haber errores gramaticales o expresiones extrañas.

    Hola Guillermo Triay Blanco,

    Parece que mi respuesta anterior no abordó adecuadamente su preocupación. Dada su especulación de que los hipervínculos dentro de las celdas podrían estar causando el problema, he preparado un nuevo fragmento de código. Este código crea una hoja de cálculo temporal, copia el rango especificado de la hoja original en ella y, a continuación, convierte los hipervínculos para mostrar texto dentro de esta hoja temporal antes de exportarla a PDF. La hoja de cálculo temporal se elimina posteriormente para garantizar que los datos originales permanezcan inalterados.

    Este es el código revisado:

    code_1.txt

    Espero que este código sea útil o le facilite la resolución de problemas.

    Saludos

    Jonathan Z - MSFT | Especialista en soporte técnico de la comunidad de Microsoft

    0 comentarios No hay comentarios
  4. Anónimas
    2024-06-02T09:42:14+00:00

    Hola Jonathan, muchas gracias por tu respuesta. He probado tu código, del que te pongo en copia.

    Pasa exactamente lo mismo.

    La rutina funciona perfectamente en las hojas, pero en este en concreto no. Incluso he creado un hipervinculo similar en una hoja, he probado la rutina y funciona.

    Te adjunto en el txt foto de la hoja que da problemas. Todas las hojas tienen el mismo formato y los mismos botones. Los artículo de la columna 1, son hipervínculos a otras hojas.

    La siguiente foto es de otra hoja por la cual paso la rutina de impresión y funciona correctamente, creando una lista del histórico de impresiones de la hoja (Row 40 y siguientes), con el icono de PDF que enlaza con el fichero pdf guardado.

    Application.StatusBar = "Generando el fichero pdf solicitado. Por favor espere ...."

        Fichero = UCase(Fichero)

        Worksheets(Hoja).PageSetup.Orientation = xlLandscape

        Ruta = ThisWorkbook.Path & "\RECETAS Y MENUS" & Fichero & ".pdf"

        Rutajpg = ThisWorkbook.Path & "\iconoPDF.jpg"

        Receta.Range("A1:K38").Select

        If Not Range("A1:K38").Cells Is Nothing Then

            Receta.Range("A1:K38").ExportAsFixedFormat _

            Type:=xlTypePDF, _

            Filename:=Ruta, _

            Quality:=xlQualityStandard, _

            IncludeDocProperties:=True, _

            IgnorePrintAreas:=False, _

            OpenAfterPublish:=False

            Worksheets(Hoja).PageSetup.Orientation = xlPortrait

            Respuesta = MsgBox("Quieres ver el archivo pdf generado ?", vbYesNo + vbQuestion, "APERTURA DEL PDF GENERADO")

            If Respuesta = 6 Then

                ActiveWorkbook.FollowHyperlink Ruta

            End If

    0 comentarios No hay comentarios
  5. Anónimas
    2024-06-02T03:56:49+00:00

    Esta respuesta ha sido traducida automáticamente. Como resultado, puede haber errores gramaticales o expresiones extrañas.

    Hola Guillermo Triay Blanco,

    Bienvenido a la comunidad de Microsoft.

    Gracias por sus esfuerzos para solucionar este problema. Después de revisar su código, mi perspectiva es que el método 'ExportAsFixedFormat' de VBA, al exportar celdas que contienen hipervínculos a archivos PDF, de forma predeterminada no conserva la interactividad de estos hipervínculos, sino que los muestra como texto sin formato o direcciones de vínculos. Por lo general, esto no hace que se produzca un error en la exportación, pero puede dar lugar a que el contenido exportado difiera de las expectativas. Dados los desencadenantes comunes del mensaje de error que ha descrito, a continuación se muestra una versión actualizada del código:

    code.txt

    Si bien es posible que este código no resuelva directamente su problema, podría ayudarlo a identificar mejor el problema.

    Por favor, siéntase libre de hacerme saber si estos códigos ayudan.

    Saludos

    Jonathan Z - MSFT | Especialista en soporte técnico de la comunidad de Microsoft

    0 comentarios No hay comentarios