Condividi:        

Message box ad evento

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

Message box ad evento

Postdi replymonster » 26/03/18 09:21

Buongiorno a tutti,

Penso la soluzione sia semplice per cui andiamo subito al dunque.
Praticamene io ho una scheda in cui inserisco i dati di input (si parla di dati time series) e da cui si scaturiscono vari calcoli concatenati.

1. Un'altra scheda di nome 'Output' che nel momento in cui dei nuovi dati vengono inseriti nel tempo si potrebbe aggiornare ed alcuni valori cambiare
2. Un'altra scheda chiamata 'Pivot1' potrebbe aggiornarsi in quanto potrebbe trovare una nuova coppia da aggiungere alla pivot. Se cosi fosse da li, attivndo una macro, partirebbe un analisi dove alla fine una colonna verrà incollata nel foglio 'Output'

Tecnicamente il massimo per me sarebbe che quando i dati vengono inseriti, dovrebbe partire subito l'analisi se è cambiato qualche valore nel foglio 'Output' (e farmelo sapere con un message box) e poi eventualmente far partire un analisi da foglio 'Pivot1' che andrà a modificare di nuovo il foglio 'Output' ma che non voglio che me lo segnali.

Il message box dovrebbe attivarsi ogni volta che un valore semplicemente cambi in automatico.
Questo è il codice che sto usando per il message box:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    ' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("A1:U10")
   
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        ' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
        MsgBox "Cell " & Target.Address & " has changed."
       
    End If
End Sub



Grazie a tutti,
Buona serata
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Sponsor
 

Re: Message box ad evento

Postdi alfrimpa » 26/03/18 10:58

Ciao replymonster

Premesso che senza un file di esempio (sul quale spiegare quello che si vuole ottenere) è difficile rispondere se per "un valore semplicemente cambi in automatico" intendi un valore che cambia a seguito di una formula più che l'vento Change andrebbe usato l'evento Calculate del foglio.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Message box ad evento

Postdi Anthony47 » 26/03/18 11:36

Condivido la valutazione di Alfredo: troppo vaga la descrizione perche' si possa anche solo cominciare a lavorarci.
Che cosa fa partire l'aggiornamento eventuale di "Output"? Che cosa fa aggiornare Pivot1? La macro che "attivandola farebbe partire una analisi" esiste gia' e che cosa fa? La stessa "analisi" in che cosa consiste?

Quanto al codice della Worksheet_Change esso e' perfetto; solo non ne capisco l'utilita': se io modifico la cella A2 esce un messaggio che mi dice "Hai modificato la cella A2". Se fossi l'utente risponderei: "Mi prendi per il **lo :evil: ?"

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

Re: Message box ad evento

Postdi replymonster » 26/03/18 16:21

Allora provo a rispiegarmi con un file fatto il più possibile simile al reale e spiegando in modo più approfondito:

Nella scheda 'Input' verranno inseriti dei dati ogni giorno (aggiunti alla fine) e cosi facendo si scaturiscono tre cose:
1. Il trigger della macro si aggiorna in quanto viene inserita una data maggiore e la formula ricalcola il MAX e si aggiorna (come si può vedere)
2. I due numeri inseriti insieme alla data possono modificare la scheda output (dove ho scritto solo SI o NO ma in realtà derivano da una formula in cui vengono messi a confronto dei numeri in altre schede con quelle in 'Input' e se si trovano da SI come risultato altrimenti NO)
3. La scheda 'Pivot1' si aggiorna (in quanto ogni volta che vengono inseriti dei nuovi numeri li filtra in un certo modo) ed è presente nel foglio una macro che tramite un contatore fa partire l'ultima anlisi utile che, per farla in breve, finirà con l'inserire una nuova colonna nel foglio 'Output' e ci incollerà la solita formula che darà o SI o NO

Detto ciò io volevo sapere se quando aggiungo dei nuovi dati ed i SI o NO si aggiornano nel foglio 'Output' me li può segnalare? Il tutto però deve funzionare senza che quando poi venga attivata la macro nel foglio 'Pivot1' non impazzisca

Tutte le celle, apparte gli input, sono delle formule!
Nella scheda 'Pivot1' ci sta una pivot ovviamente, da me non replicata.

https://ufile.io/281fm
Grazie e spero di essere stato il più chiaro possibile,
anche perchè non voglio farvi perdere tempo utile.
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Re: Message box ad evento

Postdi replymonster » 26/03/18 17:45

EDIT:
Girando per internet tecnicamente ho scoperto che la partita si gioca su una questione:
-Esiste una macro che genera un message box applicata ad una FORMULA che si aggiorna e quindi cambia l'output?

Tendenzialmente penso si riduca a questo il quesito
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Re: Message box ad evento

Postdi scossa » 26/03/18 18:10

Ciao,

scusa ma hai allegato un file sena macro, ma soprattutto senza nemmeno una formula!!! cosa dobbiamo farci??
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Message box ad evento

Postdi replymonster » 26/03/18 21:45

La formula sta solo all'inizio comunque avete ragione, e mi rendo conto che non è chiarissimo ma la domanda alla fine è questa:
Esiste una macro che genera un message box applicata ad un range di celle contenenti FORMULE che si aggiornano e quindi cambia l'output?

PS. Domani provo a caricare un file praticamente identico
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Re: Message box ad evento

Postdi Anthony47 » 27/03/18 11:34

"La formula" e' una macro di Worksheet_Calculate (come gia' detto da Alfredo), che si attiva tutte le volte che sul foglio si esegue un Ricalcolo.
Purtroppo quale cella sia cambiata questo evento non lo segnala, quindi e' il codice della Sub Worksheet_Calculate che deve indagare quali modifiche sono state prodotte.

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

Re: Message box ad evento

Postdi scossa » 27/03/18 18:21

Anthony47 ha scritto:"La formula" e' una macro di Worksheet_Calculate (come gia' detto da Alfredo), che si attiva tutte le volte che sul foglio si esegue un Ricalcolo.


In realtà c'è un'alternativa (come spiegavo in altro forum):
prendiamo come esempio il range A1:E3
dove in C1 c'è la formula =A1*B1+E1
dove in C2 c'è la formula =A2*B2+E2
dove in C3 c'è la formula =A3*B3+E3

e queto codice di evento Worksheet_Change:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Me.Range("C1:C3").Precedents) Is Nothing Then
    MsgBox "è cambiato il valore in " & Target.Address(0, 0)
  End If
End Sub


Unico vincolo: se la formula contiene riferimenti a celle di un altro foglio, un eventuale cambiamento in tali celle non verrebbe intercettato.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Message box ad evento

Postdi Anthony47 » 27/03/18 19:21

Eh eh...
grazie scossa del contributo.

In genere il contenuto di un file non cambia per opera dello Spirito Santo, quindi suggerisco di individuare l'origine dei cambiamenti (un input = Worksheet_Change, una QueryAutoaggiornante = Evento AfterRefresh, una macro OnTime = Call AltraMacro, un evento su un link dde = SetLinkOnData, etc etc)
Altre volte e' sufficiente che i cambiamenti siano identificati quando un foglio viene attivato (evento Worksheet_Activate); o quando il foglio di input viene disattivato (evento Worksheet_Deactivate).
In questo caso sembra che l'utente, a conoscenza del suo ambiente (o no?), abbia gia' diagnosticato che non ci sono alternative; di qua la mia risposta un po' pelandrona...

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


Torna a Applicazioni Office Windows


Topic correlati a "Message box ad evento":


Chi c’è in linea

Visitano il forum: Cedamido1, raimea e 18 ospiti