Confirmar impresión
Hola buen día, me podrías quidar en lo siguiente: te explico, en esta macro realizo impresión dependiendo de la opción indicada (1 contrato), (2 recibo) pero quiero anexar otra macro que ejecuto aparte donde me guarda la información como historial de lo que fue impreso, pero quiero poner una condicional en esta macro que no me guarde los datos sino al estar seguro que la impresión fue realizada correctamente, "por aquello de atasco de papel, salio movida la impresión o sin tinta la impresora, etc" es decir que me envíe un mensaje de conformidad de la impresión si la opción seleccionada es SI fue correcta, entonces ejecuta la otra macro que es guardar historial, si la opción indicada es NO entonces que me permita imprimir de nuevo el documento indicado, solo me interesa guardar el historal de la opción 2 que es RECIBO
Sub Imprimir_Contrato_Recibo()
Dim lngcontarproduc&, bitvueltas As Byte, bitvueltas2 As Byte
Application.ScreenUpdating = False
If [B2] = "" Then
MsgBox "Ingrese Código Cliente", vbExclamation + vbOKOnly, _
"Cliente"
[B2].Select
Application.ScreenUpdating = True
Exit Sub
End If
If [K36] = "" Then
MsgBox "Ingrese nombre de la persona que realizo la venta", vbExclamation + vbOKOnly, "Quien realizo la venta"
[K36].Select
Application.ScreenUpdating = True
Exit Sub
End If
Sheets("1").Visible = True
Sheets("2").Visible = True
On Error GoTo controlError
Dim estaHoja
estaHoja = ActiveSheet.Name
Dim imprimirHoja
Dim Mensaje, Titulo
Mensaje = " 1-. Contrato 2-. Recibo"
Titulo = "¿Qué desea imprimir?"
imprimirHoja = InputBox(Mensaje, Titulo)
If imprimirHoja = Empty Then Exit Sub
If imprimirHoja = "Esta" Then imprimirHoja = estaHoja
If MsgBox("Se imprimirá la siguiente opción: " & imprimirHoja & Chr(13) _
& Chr(13) _
& "¿Desea continuar?", vbExclamation + vbDefaultButton1 + vbYesNo, "Por favor confirme la acción") = vbNo Then
Exit Sub
Else
Application.ScreenUpdating = False
Worksheets(imprimirHoja).Activate
ActiveSheet.PrintOut Copies:=1, Collate:=True
Worksheets(estaHoja).Activate
Sheets(Array("2", "1")).Select
ActiveWindow.SelectedSheets.Visible = False
Range("B2").Select
ActiveWorkbook.Save
Application.ScreenUpdating = True
End If
Exit Sub
controlError:
MsgBox "El nombre de hoja ingresado no existe.", vbExclamation, "Acción cancelada"
Exit Sub
End Sub
2da Macro, guardar historial
Sub Registro_Recibo()
Application.ScreenUpdating = False
Sheets("Registro de Ventas y Cobranza").Select
ActiveSheet.Unprotect "contraseña"
Range("A2").Select
Selection.End(xlDown).Select
ActiveCell.Range("A1:X1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Protect Password:="contraseña", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
Sheets("Contrato y Recibo").Select
Application.ScreenUpdating = True
Range("J1").Select
Selection.Copy
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("B2,B19:B26,B35,K31,k32,K34,K35,K36").Select
Range("B35").Activate
Selection.ClearContents
Range("B2").Select
End Sub
Nota: en la hoja de Ventas y Cobranza tengo en la ultima fila la función de pasar los datos capturados en la hoja Contrato y Recibo
Saludos y gracias
Sub Imprimir_Contrato_Recibo()
Dim lngcontarproduc&, bitvueltas As Byte, bitvueltas2 As Byte
Application.ScreenUpdating = False
If [B2] = "" Then
MsgBox "Ingrese Código Cliente", vbExclamation + vbOKOnly, _
"Cliente"
[B2].Select
Application.ScreenUpdating = True
Exit Sub
End If
If [K36] = "" Then
MsgBox "Ingrese nombre de la persona que realizo la venta", vbExclamation + vbOKOnly, "Quien realizo la venta"
[K36].Select
Application.ScreenUpdating = True
Exit Sub
End If
Sheets("1").Visible = True
Sheets("2").Visible = True
On Error GoTo controlError
Dim estaHoja
estaHoja = ActiveSheet.Name
Dim imprimirHoja
Dim Mensaje, Titulo
Mensaje = " 1-. Contrato 2-. Recibo"
Titulo = "¿Qué desea imprimir?"
imprimirHoja = InputBox(Mensaje, Titulo)
If imprimirHoja = Empty Then Exit Sub
If imprimirHoja = "Esta" Then imprimirHoja = estaHoja
If MsgBox("Se imprimirá la siguiente opción: " & imprimirHoja & Chr(13) _
& Chr(13) _
& "¿Desea continuar?", vbExclamation + vbDefaultButton1 + vbYesNo, "Por favor confirme la acción") = vbNo Then
Exit Sub
Else
Application.ScreenUpdating = False
Worksheets(imprimirHoja).Activate
ActiveSheet.PrintOut Copies:=1, Collate:=True
Worksheets(estaHoja).Activate
Sheets(Array("2", "1")).Select
ActiveWindow.SelectedSheets.Visible = False
Range("B2").Select
ActiveWorkbook.Save
Application.ScreenUpdating = True
End If
Exit Sub
controlError:
MsgBox "El nombre de hoja ingresado no existe.", vbExclamation, "Acción cancelada"
Exit Sub
End Sub
2da Macro, guardar historial
Sub Registro_Recibo()
Application.ScreenUpdating = False
Sheets("Registro de Ventas y Cobranza").Select
ActiveSheet.Unprotect "contraseña"
Range("A2").Select
Selection.End(xlDown).Select
ActiveCell.Range("A1:X1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Protect Password:="contraseña", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
Sheets("Contrato y Recibo").Select
Application.ScreenUpdating = True
Range("J1").Select
Selection.Copy
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("B2,B19:B26,B35,K31,k32,K34,K35,K36").Select
Range("B35").Activate
Selection.ClearContents
Range("B2").Select
End Sub
Nota: en la hoja de Ventas y Cobranza tengo en la ultima fila la función de pasar los datos capturados en la hoja Contrato y Recibo
Saludos y gracias
1 Respuesta
Respuesta de Orlando Collarte
1