Ciao Briscolone e benvenuto,
secondo me la discussione cui fai riferimento riporta la soulzione al tuo problema:
Alexsandra ha scritto:- Codice: Seleziona tutto
=SE(A1<5000;A1*8%;SE(E(A1>=5000;A1<25001);A1*4%;SE(A1>=25000;A1*2,5%)))
inserendo un valore in A1 la formula ti porta il risultato in D1.
apri VBA e nel foglio che hai inserito la formula metti il seguente codice
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("d1").Value <> "" Then
MsgBox "Ciao avvio una macro di prova"
End If
End Sub
ovviamente cambiando i riferimenti nella formula e anche nel codice VB puoi fare quello che desideri
PS. la macro ti parte in sempre perchè ho messo la condizione (<> "") se invece tramite la formula metti un risultato tipo <= 100 solo in quel caso si avvia
questo è il punto di partenza. Adesso bisgona capire come hai strutturato il file e quali sono le tue esigenze. Io applicherei questa soluzione:
1) in un modulo creo le macro "Applausi" e "Fischi"
2) nell'evento Worksheets_Change del mio foglio, ammettendo che devo verificare il valore della cella A1, inserisco queste istruzioni:
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Select Case Range("A1")
Case 0
Fischi
Case 1
Applausi
End Select
End If
End Sub
quindi se il valore della cella A1=0 parte la macro "Fischi", se il valore della cella A1=1 parte la macro "Applausi".
3) l'evento del punto 2 parte solo nel caso in cui il valore della cella A1 viene modificata.
Ripeto, questo è un punto di partenza.
Ciao
Tribuno