Selección de Impresora

He conseguido el siguiente código el cual genera un cuadro de selección de impresoras, me ha funcionado perfecto, el problema es que si cancelo la selección de impresora sin embargo imprime, se que le hace falta una sentencia, pero no se como realizarla, te envío el código que he usado para esto, agradezco tu ayuda
Sub ImprimeGastos()
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveSheet.PageSetup.PrintArea = "$k$1:$Q$103"
End Sub

3 respuestas

Respuesta
3
Disculpa por la demora
Aqui va la solucion segun lo que entendi
Sub ImprimeGastos()
On Error GoTo Problema
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveSheet.PageSetup.PrintArea = "$k$1:$Q$103"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Problema:
If Err.Number = 1004 Then
MsgBox " No a seleccionado impresora", vbCritical, "Error"
Exit Sub
End If
End Sub
Buen día, creo que no fui claro, el problema ocurre es en el cuadro de selección de impresora, cuando de activa muestra las impresoras configuradas en el equipo y 3 botones (configurar, aceptar y cancelar), cuando se le da cancelar debería cerrar el cuadro y nada más, pero no lo hace sigue la rutina como si le hubiese dado Aceptar
Intenta cambiándolo por este
Application.Dialogs(xlDialogPrint).Show
Buen día, ya lo he probado y sigo con el mismo problema, al darle cancelar envía a imprimir y no debería hacerlo.
Es necesario que salga el cuadro de selección de impresora.?
Dejándola como predeterminada y luego hacer una validación no seria mejor
por mientras me respondes seguiré buscando la solución
Suerte
Si, es necesario la selección de la impresora, puesto que el archivo puede ser manejado en varios computadores y no todos tienen la misma impresora predeterminada
He dado con la respuesta aquí esta amigo
Sub ImprimeGastos()
On Error GoTo Problema
 If Application.Dialogs(xlDialogPrint).Show = True Then
 ActiveSheet.PageSetup.PrintArea = "$k$1:$Q$103"
 ActiveWindow.SelectedSheets.PrintOut Copies:=1
 Else
 Exit Sub
 End If
Problema:
If Err.Number = 1004 Then
MsgBox " No a seleccionado impresora", vbCritical, "Error"
Exit Sub
End If
End Sub
Solo era agregar un if a la sentencia y ok
No olvides finalizar y puntear
Suerte!
Respuesta
1

Tuve el mismo problema y lo solucione de la siguiente manera

Sub ImprimeGastos()
x = Application.Dialogs(xlDialogPrinterSetup).Show
If x = True Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveSheet.PageSetup.PrintArea = "$k$1:$Q$103"
End If
End Sub

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas