Condividi:        

esecuzione di macro al cambiamento di una particolare cella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

esecuzione di macro al cambiamento di una particolare cella

Postdi talete79 » 09/07/16 01:58

Mi occorrerebbe eseguire una macro al verificarsi del cambiamento del valore di una determinata cella (questo valore è definito con una formula). Mi dite come posso fare?
Office 2013 Professional
talete79
Utente Junior
 
Post: 10
Iscritto il: 21/02/12 21:58

Sponsor
 

Re: esecuzione di macro al cambiamento di una particolare ce

Postdi patel » 10/07/16 09:21

allega un file di esempio con dati e spiegazioni
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: esecuzione di macro al cambiamento di una particolare ce

Postdi talete79 » 10/07/16 23:26

Ciao, ti riporto il codice e ti do qualche info. "Raggruppa" è la macro che voglio lanciare al verificarsi dell'evento (e che già funziona perfettamente). Macro1 è una macro di servizio: serve per fare un confronto tra la cella I4 (il cui cambio del valore è l'evento) e J4, dove vado a copiare il valore di I4 (mi serve come "memoria"). Al momento in cui vi scrivo sembra che io sia riuscito nell'intento (anche se poi utilizzando il foglio a un certo punto non funziona più).
Senz'altro andava scritto Application.enableevents= false, perchè prima andava spesso in loop. C'è una cosa che non ho capito però:
Worksheet_change si attiva a qualunque variazione di qualunque cella del foglio (salvo poi non fare nulla quando i due valori sono uguali, come io riscontro nell'utilizzo del file)? Non potrei dire subito che "Target" è la sola cella I4?
Codice: Seleziona tutto

Sub Raggruppa()

' Raggruppa() Macro
'
' Scelta rapida da tastiera: CTRL+MAIUSC+R


Dim Numero_lotti, n10, n62 As Integer
Numero_lotti = Cells(4, 9).Value
n10 = Numero_lotti + 11
n62 = Numero_lotti + 63
    Selection.ClearOutline
    Rows(n10 & ":54").Select
    Selection.Rows.Group

    Rows(n62 & ":106").Select
    Selection.Rows.Group

    ActiveSheet.Outline.ShowLevels RowLevels:=1
    Range("C" & n10 - 1).Select
End Sub

Sub Macro1()
'
' Macro1 Macro
'
'

    Range("I4").Select
    Selection.Copy
    Range("J4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

End Sub






Private Sub Worksheet_change(ByVal Target As Range)
    Application.EnableEvents = False
    If Range("i4").Value <> Range("j4").Value Then
        Call Raggruppa
        Call Macro1
    End If
    Application.EnableEvents = True
End Sub



Ah... come si fa ad impedire che il display mostri l'avanzamento di unamacro e dunque vedere solo lo stato alla fine dell'esecuzione?
Office 2013 Professional
talete79
Utente Junior
 
Post: 10
Iscritto il: 21/02/12 21:58

Re: esecuzione di macro al cambiamento di una particolare ce

Postdi Flash30005 » 11/07/16 01:11

Il Worksheet_change non "sente" la variazione di una formula
ma solo quella che fai manualmente

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: esecuzione di macro al cambiamento di una particolare ce

Postdi Anthony47 » 12/07/16 01:19

Mi occorrerebbe eseguire una macro al verificarsi del cambiamento del valore di una determinata cella (questo valore è definito con una formula). Mi dite come posso fare?

Una risposta ti e' stata data qui: viewtopic.php?f=26&t=86847&p=628147#p628147

Avessi continuato la discussione da quella risposta sarebbe stato meglio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "esecuzione di macro al cambiamento di una particolare cella":


Chi c’è in linea

Visitano il forum: Nessuno e 57 ospiti