Per favore, cerca di elaborare il più sinteticamente possibile:Il mio semplice MsgBox VBA blocca l'intero foglio di calcolo a meno che non clicchi su "ok"?
Ho un foglio di calcolo di base per il trading che prende prezzi in tempo reale e se il prezzo supera il mio prezzo di entrata obiettivo una cella, ad esempio AB4, mostra il testo " ACQUISTARE". Se possiedo il titolo e il prezzo scende sotto il mio obiettivo, la stessa cella mostra "VENDITA". In entrambi i casi, il foglio di calcolo invierà automaticamente un ordine per eseguire la transazione.
Tutto quello che desideravo era un messaggio msg per ricordarmi di prendere appunti ogni volta che viene visualizzato un segnale. Ho solo bisogno di un promemoria, ma ne ho bisogno, come ho sempre dimenticato.
Dopo aver letto molti post passato qui, questo è stato il mio primo tentativo:
Private Sub worksheet_calculate()
If Range("AB4").value = "BUY" Or Range("AB4").value = "SELL" Then
MsgBox ("Record Catalyst")
End If
End Sub
sembrava funzionare ma non appena ho cliccato "OK" il msgbox avrebbe immediatamente riapparire. Fintanto che il testo "ACQUISTA" o "Vendi" mostrava il messaggio msgbox non andava via, non importa il numero di volte in cui l'ho fatto clic.
Così ho cercato di nuovo e hanno trovato un modo per rendere il msgbox appaiono solo una volta:
Private Sub worksheet_calculate()
If ActiveSheet.Range("BV4").Text = "Triggered" Then Exit Sub
If Range("AB4").value = "BUY" Or Range("AB4").value = "SELL" Then
MsgBox ("Record Catalyst")
ActiveSheet.Range("BV4") = "Triggered"
End If
End Sub
sembrava funzionare un fascino a meno che io non fare clic sul "ok" per rendere il msgbox scomparire tutta la mia foglio di calcolo cessa di fare qualsiasi cosa (cioè i prezzi non si aggiornano più, i calcoli non vengono più eseguiti ecc.)! Sembra solo aspettare che clicchi prima su "ok". Questo è un grosso problema perché se non sono in giro quando viene visualizzato un messaggio msg e il foglio di calcolo viene fermato, il prezzo per un altro stock nel mio portafoglio raggiunge il suo obiettivo, il foglio di calcolo non saprebbe nemmeno di farlo sparire automaticamente.
Perché questa semplice procedura interrompe il funzionamento del foglio di calcolo e come posso risolvere il mio problema "semplice" msgbox? Non voglio seguire il percorso di formattazione condizionale sul foglio di calcolo poiché è già ingombrato da troppe celle condizionate in modo condizionale.
Grazie guru!
MsgBox è modale: richiede all'utente di eseguire un'azione prima di procedere. Piuttosto che usare un MsgBox, puoi creare un semplice UserForm che può essere chiamato come Modeless (e non interrompere il tuo foglio di calcolo). O utilizzare lo StatusBar. – brettdj
Perché hai bisogno di MsgBox in primo luogo? Perché non lo rimuovi, quindi aggiungi un tracker sul numero di volte in cui il tuo codice viene eseguito (se in qualche modo hai bisogno di rintracciarlo o qualcosa del genere). – L42
Oh capisco ..... non sapevo che fosse "modale". Ok, lasciami guardare in UserForms e vedere come potrebbero aiutare. Grazie per il puntatore! – Untitled