Programación MsgBox vbYesNo en Excel

Requiero ingresar una validación a mi archivo el cual ejecuta una macro al dar click en un botón definido. La idea es que esta validación sea la siguiente: "Si alguna celda de la columna AA contiene el dato B-4-3 muestre un cuadro de dialogo con las opciones Si y No. Al dar click en No la macro se debe detener y cerrar el cuadro de dialogo, al dar click en SI se debe continuar con la rutina que esta programa previamente y cerrar el cuadro de dialogo.

2 respuestas

Respuesta
1

.01.02.17

Buenas tardes, Diego

Aquí van las lineas que deberías agregar a tu rutina para que haga lo que solicitas:

Sub TUMACRO()
ColControl = "AA" 'columna donde hacer el control
Buscar = "B-4-3" 'dato a buscar
'
'...
'  
ElMensaje = "lo que tu quieras incluir en el mensaje"
ElMensaje = "Se ha encontrado " & Buscar & " en la columna " & ColControl & " (fila: " & Encontrado & ")" & Chr(10) & ElMensaje & Chr(10) & "Presionar SI para continuar, NO para detener rutina"
ElTitulo = "FAVOR INDICAR QUÉ HACER"
ColControl = ColControl & ":" & ColControl
On Error Resume Next
Encontrado = Columns(ColControl).Find(What:=Buscar, LookAt:=xlWhole).Row
If Err.Number = 0 And Len(Encontrado) > 0 Then
    QueHago = MsgBox(ElMensaje, vbYesNo, ElTitulo)
    If QueHago = 7 Then Exit Sub
End If
Err.Clear
On Error GoTo 0
'//////////////////////////////
' aqui va el resto de tu rutina
'//////////////////////////////
End Sub

Como verás, en las primeras líneas le indicas dónde y qué buscar.

Luego puedes agregar un mensaje especial al usuario para que le consulte qué hacer.

Si lo encuentra y responde NO a la consulta, sale de la rutina.

Si no, continua con las instrucciones que colocas abajo.

Espero que sea lo que necesitas.

Un abrazo

Fer

.

Respuesta
1

La manera de usar los msgbox de este modo es la siguiente:

'definimos el msgbox
vmm = MsgBox("Atención!" & vbCrLf & vbCrLf & "Se ha encontrado el valor buscado, deseas seguir adelante con la ejecución de la macro?", vbCritical + vbYesNo, "Atención!")
'valoramos el resultado del msgbox, si se pulsa el NO vmm=vbno, si se pulsa en SI, vmm=vbyes
If vmm = vbNo Then
    MsgBox "Macro interrumpida."
    exit sub
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas