Colocación de un MsgBox en una macro excel

A esta macro

Sub inserta_Lineas()        Application.ScreenUpdating = False        On Error GoTo Jota 'LE AGREGUE        a = InputBox("Ingrese el Número de Lineas a Insertar", "Número de Lineas")        b = ActiveCell.Row        For i = 1 To a'seleccionar manualmente la celda en B donde comienza a pegar lineasAQUI            Rows(b).Select            Selection.EntireRow.Insert            Rows(b - 1).Copy'Copia las fórmulas de la columna balance            Rows(b).PasteSpecial Paste:=xlPasteFormats            'Copia las fórmulas de la columna balance            Range("I" & b - 1).Copy'Copia los formatos de celdas            Range("I" & b).PasteSpecial Paste:=xlPasteFormulas            Application.CutCopyMode = FalseAQUI        Next i    'Range("D12").SelectAQUÍJota:  'LE AGREGUEAQUI        Application.ScreenUpdating = TrueEnd Sub

a la cual le agregue         On Error GoTo Jota y  Jota: ya que me daba error si pisaba cancelar

Quiero colocarle un mensaje de Aviso para si Cancelo "Pisó Cancelar el Input", y si piso Aceptar sin meterle cantidad, "Introduzca al menos 1 cantidad"

Crie una linea   MsgBox "Canceló la inserción", vbInformation, "AVISO"

La he colocado en la intentar donde se lee, AQUÍ pero, SOLO me funciona bien si piso cancelar

1 respuesta

Respuesta
1

¿Y si me explicas qué es lo que necesitas?

Paso a paso, explícame qué necesitas, igual y es un detalle de la macro o a lo mejor hay que hacer otra.

Puede ser así, en el input, no encuentro la forma de saber si presionó Aceptar o Cancelar. La otra opción es que crees un userform con un textbox, un botón Aceptar y un botón Cancelar, de esa forma sí sabrás cuál botón se presionó.

Sub inserta_Lineas() 'PEGONES1
    a = InputBox("Ingrese el Número de Lineas a Insertar", "Número de Lineas")
    '
    If a = "" Then
        MsgBox "Proceso cancelado"
        Exit Sub
    End If
    '
    b = ActiveCell.Row
    For i = 1 To a
        Rows(b).Select
        Selection.EntireRow.Insert
        Rows(b - 1).Copy
        Rows(b).PasteSpecial Paste:=xlPasteFormats
        Range("I" & b - 1).Copy
        Range("I" & b).PasteSpecial Paste:=xlPasteFormulas
        Application.CutCopyMode = False
    Next i
    Application.ScreenUpdating = True
End Sub

No hay que hacer tora amigoDAM

Al presionar Cancelar en el input, con lo que le agregue funciona pero quiero mensaje de aviso si

Presiono Cancelar " Usted Cancelo el input"

Presiono Aceptar SIN INTRODUCIRLE numero o introduzco 0 " "Introduzca al menos el número 1"

La macro que me dejas, con el If funciona MUY BIEN si presiono Cancelar o Aceptar sin que el input tenga algún número pero.

Si en el input introduzco un 0 o lo dejo vacío y piso el botón Aceptar, me diga " Introduzca al menos número 1

Utiliza un formulario y pones un botón para aceptar y otro para cancelar, de esa forma tienes más control

Esta es una opción, en lugar de inputbox, utiliza application. Inputbox

Sub Macro8()
'Por.Dante Amor
AInput:
    a = Application.InputBox("Ingrese el Número de Lineas a Insertar", _
        "Aceptar para continuar, o Cancelar para Salir")
    If a = False Then
        MsgBox "Pisó Cancelar el Input o la cantidad es cero", vbExclamation
        Exit Sub
    End If
    If a = "" Then
        MsgBox "Introduzca al menos 1 cantidad", vbCritical
        GoTo AInput
    End If
    'aquí pon tu código
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas