Al oprimir cancelar en inputbox cierra pero sigue haciendo el resto del sub

Tengo una macro que lo primero que me hace es mostrarme una ventana de inputbox y al ponerle valor hasta ahí hace bien su función, el detalle esta que si cancelo cierra dicha ventana y me sigue ejecutando el resto de la macro y eso es lo que no quiero que haga. Esta es mi macro.

Sub PRECIO_CON_DESCUENTO_MAS_IVA()

'
Sheets("PRODUCTOS").Select
ActiveSheet.Unprotect Password:="contra"
copia = InputBox("¿De cuanto es el descuento?", "AVISO")
Range("O2") = copia
If copia = vbCancel Then Exit Sub
Range("U2:U90").Select
Selection.Copy
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A110").Select
ActiveWindow.SmallScroll Down:=-95

Sheets("PRODUCTOS").Select
ActiveSheet.Protect Password:="contra"

End Sub

2 Respuestas

Respuesta
1

Prueba lo siguiente:

Sub PRECIO_CON_DESCUENTO_MAS_IVA()
  Dim copia As String
  '
  Do While True
    copia = InputBox("¿De cuanto es el descuento?", "AVISO")
    If StrPtr(copia) = 0 Then
      'Click Cancel
      Exit Sub
    ElseIf Len(copia) = 0 Then
      'El campo copia está vacío
      MsgBox "Captura un valor"
    Else
      Sheets("PRODUCTOS").Select
      ActiveSheet.Unprotect Password:="contra"
      Range("O2") = copia
      Range("U2:U90").Copy
      Range("C2").PasteSpecial Paste:=xlPasteValues
      Application.CutCopyMode = False
      ActiveSheet.Protect Password:="contra"
      Exit Do
    End If
  Loop
End Sub

Gracias por contestar. Ahora si me hace bien la función

Encantado de ayudar. Gra cias por comentar.

..

.

Respuesta
1

Prueba cambiando esta línea

If copia = vbCancel Then Exit Sub

Por esta

If copia = Empty Then Exit Sub

Gracias por contestar. Si me funciono, el detalle es que no vuelve a activar la contraseña

Ok. Pero veo que ya lo tienes solucionado con la respuesta de Dante.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas