Necesito que cuando se cumpla una condición se abra una ventana, o cuadro, con un mensaje en Excel

Hola nuevamente Fernando.
Ahora lo que deseo es lo siguiente:
Necesito que cuando se cumpla una condición (Ejemplo.- =si(A1="Hola".....)
Que se abra una ventana, o un cuadro, o lo que sea, presentándome un mensaje (con el texto que yo desee).
He probado con Validación pero no soy capaz de conseguir el resultado que deseo.
Un saludo.
José A.
1

1 respuesta

Respuesta
1
Digamos, en principio que las funciones o fórmulas (en la hoja) no disparan macros.
Sin embargo, podrás asociar tal comportamiento a un "evento". Entre los que VBA considera está Workbook_SheetCalculate que se ejecuta cuando la hoja se recalcula. Otro evento es "Worksheet_Change", el cual evalúa que haya habido un cambio en la hoja.
En tal caso convendría que la fórmula devolviese VERDADERO o FALSO (cómo valor lógico, no como texto), pero se puede adaptar la macro según el caso.
Es decir la fórmula en, supongamos B4, sería:
=SI(<condición>,VERDADERO,FALSO)
Nota que no usé comillas en ambas palabras
Entonces, con el Editor de Visual Basic (Alt + F11) selecciona la hoja donde estará la fórmula citada y pega el siguiente código en el panel de la derecha:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Range("B4").Value = True Then
Msgbox "<Escribe aquí tu texto>"
End if
End Sub
Obviamente, cambia el texto del mensaje al que tu desees.
Como podrás ver cada vez que la hoja se recalcule, VBA controlará el estado de esta fórmula y, si fuese VERDADERO ejecutará la macro indicada.
Si vuelves a la hoja del VB Editor, tienes un menú descolgable en la parte superior derecha donde podrías seleccionar otros eventos distinto al recalculo de hoja para disparar la macro (ej: Change)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas