Selección de bandeja para impresión desde código VB en Excel

Tengo un excel con varios botones que ejecutan diferentes macros, ahora bien lo que yo necesito es seleccionar una bandeja especifica al imprimir. Dejo aquí un recorte de mi macro donde esta la línea de impresión. (La impresora que tengo es una HP 1102W)

Sheets("Factura").Select
ActiveCell.Offset(1, 0).Select

Next bitvueltas

Sheets("Impresion").PrintOut Copies:=2, Collate:=True

1 Respuesta

Respuesta
1

H o l a:

Por código de VBA no se puede seleccionar la bandeja de salida, pero puedes agregar la misma impresora 2 veces, es decir, ya tienes agregada la impresora "HP 1102W" y apunta a la bandeja 1; ahora, agrega nuevamente la impresora "HP 1102W" pero en su configuración marca que apunte a la bandeja 2, cuando agregues por segunda vez la impresora deberás poner otro nombre.

Tendrás 2 impresoras:

"HP 1102W" (apunta a la bandeja 1)

"HP 1102W b2" (apunta a la bandeja 2)

Entonces agrega lo siguiente a tu código:

    Application.Dialogs(xlDialogPrinterSetup).Show
    Sheets("Impresion"). PrintOut Copies:=2, Collate:=True

Cuando ejecutes la macro, te aparecerá una ventana con tus dos impresoras, selecciona la que desees para imprimir en la bandeja que quieres:


Hola Dante, gracias por tu información. Pero me habían dicho que si se podía elegir.. acá me pasaron un código pero igual no me funciona y el problema es que no encuentro estas configuraciones en mi impresora.

Código: Visual Basic

  1. 'usando objeto printer

  2. Printer.PaperBin = vbPRBNUpper '(1) bandeja superior

  3. Printer.PaperBin = vbPRBNLower '(2) bandeja inferior

  4. Printer.PaperBin = vbPRBNMiddle '(3) bandeja intermedia

Con ActiveReport esto

Código: Visual Basic

  1. 'usando activereport

  2. ActiveReport1.PageSettings.PaperBin = vbPRBNUpper '(1) bandeja superior

  3. ActiveReport1.PageSettings.PaperBin = vbPRBNLower '(2) bandeja inferior

  4. ActiveReport1.PageSettings.PaperBin = vbPRBNMiddle '(3) bandeja intermedia


Para Crystal Report esto

Código: Visual Basic

  1. 'usando crystalreport

  2. CrystalReport1.PaperSource = crPRBinUpper '(1) bandeja superior

  3. CrystalReport1.PaperSource = crPRBinLower '(2) bandeja inferior

  4. CrystalReport1.PaperSource = crPRBinMiddle '(3) bandeja intermedia

Esos códigos son para Visual Basic o para VB.net, pero en VBA para excel no existe la referencia para utilizar este objeto:

Dim Printer As New Printer
Printer. PrintAction

Si quieres utilizar ese código, tendrás que cambiar tu aplicación a Visual Basic o VB.net.

S aludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas