Macro para imprimir con impresora que no sea la predeterminada

Espero me puedan ayudar con mi petición. Tengo un libro excel el cual tiene varias hojas y en todas menos en una imprimo con la impresora predeterminada y en la hoja que no, uso una macro que me pregunta que impresora quiero utilizar y así selecciono una impresora diferente y aquí es donde quiero cambiar eso. Necesito una macro que seleccione automáticamente la impresora que quiero en esta hoja sin tener que estar seleccionando y sin perjudicar a las demás.

1 respuesta

Respuesta
1

Sin ver el código VBA es difícil precisar, pero en principio parece que debería ser suficiente con averiguar cuál es la hoja activa en el momento de la impresión. Esto es fácil de conseguir mediante

activesheet.name

Saludos_

Hola. Esta es la macro que uso

Sub IMPRIMIR_COTIZACION()

'
Sheets("COTIZACIONES").Select
ActiveSheet.Unprotect Password:="contraseña"
Range("G7:I9").Select
Selection.Copy
Range("A87:C89").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("G11:H12").Select
copia = Application.Dialogs(xlDialogPrinterSetup).Show
If copia = False Then Exit Sub
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("A87:C89").Select
Selection.ClearContents
Range("G11:H12").Select

ActiveSheet.Protect Password:="contraseña"

End Sub

y aquí en la imagen ya seleccione la impresora que quiero usar en esta hoja y yo quiero que la macro la seleccione automáticamente sin que me salga el cuadro de selección de impresora. Mi impresora predeterminada es la G2000 y la que quiero usar es la pos-80c

Yo haría lo siguiente:
1) Verificar que la impresora que se desea como predeterminada de forma habitual lo esté
2) Ejecutar esta línea de código en la ventana Inmediato, para averiguar el nombre de la impresora y el puerto:
? Application. ActivePrinter
4) Copiar y guardar el nombre y el puerto de esa impresora (es decir, la cadena de texto completa)
5) Establecer como predeterminada la POS-80C
6) Ejecutar de nuevo la línea de código
7) Guardar el nombre y el puerto de esa impresora

8) Establecer como predeterminada la que debe serlo habitualmente
Una vez que tengas los nombres y puertos de ambas impresoras, lo único que debería ser necesario para imprimir en la POS-80C es establecerla como predeterminada justo antes de imprimir lo que se necesite en ella, mediante
application.activeprinter=" -- la cadena de texto para la impresora 2 -- "
y una vez realizada la impresión, volver a establecer como predeterminada la impresora 1 con
application.activeprinter=" -- la cadena de texto para la impresora 1 -- "

Todo esto sin haberlo podido probar porque el equipo en el que estoy no tiene impresoras, lo saco todo a pdf

Saludos_

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas