Pagina 1 di 1

Macro excel

MessaggioInviato: 24/05/2012, 11:45
da Nick
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.

Re: Macro excel

MessaggioInviato: 25/10/2024, 22:25
da Jorghino
Io farei una terza macro che va a leggere il valore della cella A1 e in base al valore lancia Pippo oppure Pluto

Re: Macro excel

MessaggioInviato: 01/11/2024, 14:35
da AZ13
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..