Documentos de impresión de un hipervínculo en Excel

Estoy tratando de crear un código VBA para abrir un hipervínculo en una célula (Esta célula hipervínculo cambia dependiendo de otras variables en la hoja de cálculo, pero no creo que importe)

Básicamente quiero presionar la macro, abrirá el hipervínculo, que podría ser un documento en excelente o palabra, entonces quiero que imprima ese documento por una cantidad especificada en una célula diferente en la misma hoja de cálculo que el hipervínculo.

También quiero que el documento no aparezca, o al menos cerca después de que la impresión haya terminado.

La impresora de la que necesita imprimir se llama SRV-papercut1

He estado intentando codificarlo yo mismo, pero no puedo manejarlo bien, ¿Alguna idea?

Celda de montajeJ20 Hyperlink Cell: O18

He adjuntado una foto de la hoja de cálculo para que puedas verla. (He cortado el logotipo de la empresa a la izquierda por razones de privacidad) Una hoja de cálculo de impresión de botón

Pregunta hecha hace 3 años, 4 meses, 28 días - Por javagiant


2 Respuestas:

  • Para lograr lo que buscas, necesitarás crear un script VBA en Excel que abra el hipervínculo, imprima el documento asociado y controle la impresión en la impresora especificada. A continuación te muestro un ejemplo de cómo podrías estructurar este código:

    vba
    Sub ImprimirDocumento()
        Dim laCelda As Range
        Dim miDocumento As String
        Dim miImpresora As String
        Dim copias As Integer
    
        ' Hipervínculo en la celda O18
        Set laCelda = ThisWorkbook.Sheets("Nombre de tu hoja").Range("O18")
        miDocumento = laCelda.Hyperlinks(1).Address
    
        ' Impresora a utilizar
        miImpresora = "SRV-papercut1"
    
        ' Cantidad de copias a imprimir desde la celda J20
        copias = ThisWorkbook.Sheets("Nombre de tu hoja").Range("J20").Value
    
        ' Abrir el hipervínculo
        ActiveWorkbook.FollowHyperlink Address:=miDocumento, NewWindow:=True
    
        ' Imprimir el documento en la impresora especificada
        ActiveSheet.PageSetup.Printer = miImpresora
        ActiveSheet.PrintOut Copies:=copias, ActivePrinter:=miImpresora
    
        ' Cerrar el documento si se abrió en una ventana
        Windows(ThisWorkbook.Name).Activate
        ActiveWorkbook.Close SaveChanges:=False
    End Sub
    

    Debes ajustar el nombre de la hoja, las celdas y la impresora según tu configuración específica. Para ejecutar el código, simplemente presiona ALT + F11 para abrir el Editor de VBA, inserta un nuevo módulo y pega el código. Posteriormente, puedes asignar la macro a un botón en tu hoja de Excel para ejecutarla.

    Es importante tener en cuenta que este código abrirá el documento, lo imprimirá y luego lo cerrará. Sin embargo, ten en cuenta que el manejo del contenido y la estructura del documento a imprimir dependerá del software asociado con la extensión del hipervínculo (por ejemplo, Excel o Word).

    Respondida el Dec 19, 2020 a las 16:53 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Código VBA para imprimir un documento desde un hipervínculo en Excel:

    vba
    Sub ImprimirHipervinculo()
    
        ' Obtener el hipervínculo de la celda O18
        Dim sHipervinculo As String
        sHipervinculo = Worksheets("Hoja1").Range("O18").Hyperlinks(1).Address
    
        ' Obtener el número de copias de la celda J20
        Dim iCopias As Integer
        iCopias = Worksheets("Hoja1").Range("J20").Value
    
        ' Abrir el documento vinculado
        Dim oApp As Object
        Set oApp = CreateObject("Excel.Application")
        oApp.Visible = False
        oApp.Workbooks.Open (sHipervinculo)
    
        ' Imprimir el documento
        Dim oDocumento As Object
        Set oDocumento = oApp.ActiveWorkbook
    
        With oDocumento.PrintOptions
            .PrinterName = "SRV-papercut1"
            .Copies = iCopias
            .Collate = True
        End With
    
        oDocumento.PrintOut
    
        ' Cerrar el documento sin guardarlo
        oDocumento.Close False
    
        ' Cerrar la aplicación de Excel
        oApp.Quit
    
        ' Liberar objetos
        Set oDocumento = Nothing
        Set oApp = Nothing
    
    End Sub
    

    Instrucciones:

    • Copia y pega el código VBA en un módulo de VBA en tu libro de Excel.
    • Personaliza la celda de montaje (J20) y la celda de hipervínculo (O18) según tus necesidades.
    • Ejecuta la macro "ImprimirHipervinculo" para abrir, imprimir y cerrar el documento vinculado.

    Notas:

    El código asume que el documento vinculado es un archivo de Excel o Word. Si el documento vinculado es de otro tipo de archivo, es posible que debas modificar el código para utilizar el objeto de aplicación correspondiente. Si deseas que el documento aparezca antes de imprimirlo, cambia la línea "oApp.Visible = False" a "oApp.Visible = True". Si deseas que el documento permanezca abierto después de la impresión, elimina la línea "oDocumento.Close False".

    Respondida el Dec 19, 2020 a las 16:59 - por Gemini

    Votos positivos: 0 | Votos negativos: 0