Problema para mensaje de impresión

Buenos días, espero alguien me pueda ayudar con este código: tengo un formulario en Excel con varios TextBox, pero lo que hace el TextBox1 es que si presiono ESC cierre el formulario, si presiono F8 me copie el contenido a otra celda de otra hoja y si presiono F10 que me imprima una selección de otra hoja, mi problema es que quiero que antes de enviar la impresión me pregunte si estoy seguro de enviar la impresión, que si presiono Enter me envíe la impresión y si presiono ESC que me cancele la impresión y que cierre el formulario, espero haberme dado a entender, adjunto el código de VB que tengo:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 119 Then
UserForm1.Hide
Range("H30").Select
Selection.Copy
Sheets("Factura").Select
Range("Q29").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("B12").Select
Sheets("Envase").Visible = False
Application.ScreenUpdating = False
Sheets("Factura").Select
UserForm2.Show
UserForm2.TextBox1.SetFocus
End If
If KeyCode = 121 Then
UserForm1.Hide
MsgBox "Desea enviar el Reporte a la Impresora"
Application.ScreenUpdating = False
Unload Me
Sheets("Envase1").Visible = True
Sheets("Envase1").Select
Range("F1:M96").Select
Selection.PrintOut Copies:=1, Collate:=True
Range("F1").Select
Sheets("Envase").Select
Range("B8:E28").Select
Selection.ClearContents
Range("B8").Select
Sheets("Envase").Visible = False
Sheets("Envase1").Visible = False
Application.ScreenUpdating = True
Sheets("Factura").Select
Range("B12").Select
UserForm2.Show
If KeyCode = 27 Then
UserForm1.Hide
Selection.PrintOut Copies:=1, Collate:=Delete
End If
End If
End Sub

1 Respuesta

Respuesta
1
Te dejo la estructura de la macro para ese control Textbox:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 119 Then   'copiado
   'tus instrucciones para copiado
End If
If KeyCode = 121 Then
   UserForm1.Hide
   sino = MsgBox("Desea enviar el Reporte a la Impresora?", vbQuestion + vbYesNo, "Confirmar")
   If sino <> vbYes Then      'si no aceptas se cierra el form
      Unload Me
      Exit Sub
      End If
   'tus instrucciones de impresión - Recordar que el Userform1 está aún oculto
Muy buenos días, agradezco tu fina atención y ayuda que me has brindado, el código me funcionó tal y como lo deseaba, nuevamente muchas gracias.-

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas