Nick ha scritto:Chiedo ai più esperti del forum perché io non ne vado fuori oggi….
Come si fa a lanciare una macro se in una cella è rispettata una condizione?
Cioè:-
- se in cella A1 ho il valore 1, lancio la macro Pippo
- se in cella A1 ho il valore diverso da 1, lancio la macro Pluto
Se in cella A1 scrivo: =SE(A1=1;Pippo();Pluto()), non funziona nulla.
Devo definire le macro in modo particolare? Le macro sono scritte cosi:
Sub Pippo()
--------
--------
End sub
Grazie a chi mi da una mano.
Per eseguire una macro in base al valore di una cella in Excel, come nel caso descritto, non puoi utilizzare una formula come =SE(A1=1;Pippo();Pluto()), poiché le formule di Excel non possono lanciare macro direttamente. Invece, possiamo usare il codice VBA all'interno dell’evento Worksheet Change per monitorare automaticamente i cambiamenti di valore in una cella specifica (in questo caso, la cella A1).
Private Sub Worksheet_Change(ByVal Target As Range)
' Controlla se la cella modificata è A1
If Target.Address = "$A$1" Then
' Controlla il valore di A1 e lancia la macro corrispondente
If Target.Value = 1 Then
Call Pippo
Else
Call Pluto
End If
End If
End Sub
Vedi se ti funziona..