Hola fejoal

Mi pregunta es la siguiente...
Como puedo hacer que una macro se ejecute automáticamente desde una función condicional por ejemplo...
"=SI(PREGUNTA,MACRO,ERROR)"
Gracias por todo, saludos...

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á "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 selecciona la hoja donde estará la fórmula citada y pega el siguiente código en el panel de la derecha:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("B4").Value = True Then
Macro1
End if
End Sub
Obviamente, puedes cambiar los nombre de Macro1 por el que tenga tu macro, la cual deberá estar en un módulo.
Como podrás ver cada vez que la hoja cambie algunos de su datos 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 a Change para disparar la macro (ej: Calcular)
Esto debería resolver tu pregunta. Si así fuera, agradeceré un comentario y que la finalices.
Si no, pregúntame de nuevo.
Un abrazo!
Fernando
"Me lo explicaron y lo olvidé,
lo leí y lo entendí,
lo hice y lo aprendí".
(Considera que la valoración que figura predeterminada
es 3/5. Tal vez quieras cambiarla...)
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas