Oggi è 21/12/2024, 20:24


Macro excel

  • Autore
  • Messaggio
Non connesso

Nick

  • Messaggi: 146
  • Iscritto il: 10/10/2011, 13:53
  • Località: Venezia

Macro excel

Messaggio24/05/2012, 11:45

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.
Non connesso

Jorghino

  • Messaggi: 1
  • Iscritto il: 22/10/2024, 0:07

Re: Macro excel

Messaggio25/10/2024, 22:25

Io farei una terza macro che va a leggere il valore della cella A1 e in base al valore lancia Pippo oppure Pluto
Non connesso
Avatar utente

AZ13

  • Messaggi: 42818
  • Iscritto il: 28/09/2011, 22:27

Re: Macro excel

Messaggio01/11/2024, 14:35

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..
Meno si rischia più si guadagna ...

Torna a Excel fai da te



Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti

cron