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, 5 meses, 4 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