Condividi:        

TIME SCADUTO comparsa di MSGBOX

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

TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 28/02/12 22:23

Ciao a tutti mi potete aiutare in questo problema?

In Excel in una cella che calcola un conto alla rovescia vorrei far comparire al termine un MSGBOX che mi dica scaduto il tempo.......grazie a tutti ciao
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Sponsor
 

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 29/02/12 01:33

Modifica la macro in uso in questa:
Codice: Seleziona tutto
Sub CalcolaDeltaT()
Calculate
If Sheets("Foglio3").Range("S1") < 0 Then  '<<<Foglio e cella in cui e' calcolato il tempo residuo
    MsgBox ("Tempo scaduto"): Exit Sub
Else
    Application.OnTime Now + TimeValue("00:00:1"), "CalcolaDeltaT"  '<<<< il formato che vedi in TimeValue è hh:mm:ss
End If
End Sub
Personalizza la riga marcata <<< col nome foglio e indirizzo cella dove gia' calcoli il tempo mancante.

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

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 29/02/12 08:31

ho provato a incollare la stringa ma quando inserisco il nome del foglio e il range di celle esce errore 13 ........il nome del foglio è cesare e il range i10:i50......cosa sbaglio.....grazie tante
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 29/02/12 12:25

Hummm... mi delucidi su come l' indirizzo della "cella dove gia' calcoli il tempo mancante" e' un insieme di 40 celle?

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

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 29/02/12 12:54

Si tratta di Excel e ogni riga ho fatto calcolare tempi diversi da me impostati per avere sotto controllo più date nello stesso tempo......inoltre con una funzione logica SE ho detto che quando il tempo è <=0 esce TERMINATA.......ma vorrei che comparisse anche questo MSGBOX ...il tuo suggerimento precedente era esatto ma non funziona con il mio file Excel vedi sopra....e tutto questo con aggiornamento continuo dei vari residui di tempo trascorso.....grazie tante e spero di essermi spiegato meglio ciao
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 29/02/12 22:40

Si parla di Orari, non di Date; vero?
Comunque perdona ma non ho ancora capito...
Se hai 40 timer quale di questi vuoi che faccia scattare il nuovo messaggio? O basta che uno vada a zero e vuoi il messaggio? E gli altri timer vuoi continuare a fagli calcolare il loro tempo?
Nel frattempo l' utente sta' lavorando al pc, quindi apre nuovi file e naviga sui vari fogli; per evitare di andare a testare dati a caso, mi dici il nome del foglio su cui i contatori girano?

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

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 01/03/12 07:48

ciao si parla di date con ora ....si vorrei che quando un timer si azzera esce msgbox ...che dirti grazie per la disponibilità....dimenticavo gli altri proseguono il conteggio il foglio "cesare" e il range( I10,I50)...dentro la cella c'è una funzione logica SE..<=0 visualizza TERMINATA .
credo di averti detto tutto. Almeno spero
ciao
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 01/03/12 08:09

si scusa il tempo residuo è in ore,minuti,secondi.
con funzione logica SE
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 01/03/12 15:03

Allora prova questa versione:
Codice: Seleziona tutto
Dim Termins As Integer
'
Sub CalcolaDeltaT()
CntCell = "I10:I50"   '<<<
CntSh = "Foglio2"     '<<<
'
Calculate
CTerm = Application.WorksheetFunction.CountIf(Sheets(CntSh).Range(CntCell), "TERMINATA")
If CTerm <> Termins And CTerm > 0 Then MsgBox ("Tempo scaduto")
Termins = CTerm
If Application.WorksheetFunction.CountIf(Sheets(CntSh).Range(CntCell), ">0") Then
    Application.OnTime Now + TimeValue("00:00:05"), "CalcolaDeltaT"  '<<< ritardo in hh:mm:ss
End If
End Sub
La riga Dim deve essere la prima del Modulo in cui e' inserita la macro.
Questa conta quanti Terminata sono presenti nel tuo intervallo, e se il numero e' variato rispetto al campionamento precedente segnala "Tempo scaduto"; se ci sono contatori ancora non scaduti la macro si ripetera' N secondi dopo.
Le tre istruzioni marcate <<< sono da personalizzare.

Fai sapere, ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 01/03/12 20:17

funziona benissimo.......sei davvero bravo complimenti...grazie tante ciaooooo
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 04/03/12 23:14

Per fermare la macro procedi come descritto in questa discussione: viewtopic.php?f=26&t=94425#p540318; cioe':
-inserisci in ThisWorkbook la macro "BeforeClose" contenente l' istruzione (modificata rispetto a quanto scritto nel link)
Application.OnTime NextT, " CalcolaDeltaT ", , False

In testa al Modulo che contiene la CalcolaDeltaT inserisci
Public NextT As Date

Modifichi la CalcolaDeltaT:
-aggiunta in testa:
NextT = Now + TimeValue("00:00:01") '<<< il Periodi di ripetizione macro

Modificata:
Application.OnTime NextT, "CalcolaDeltaT"

In questo modo quando fai Chiudi file la macro viene deschedulata.

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

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 05/03/12 20:25

niente da fare sicuramente sbaglio da qualche parte ma non riesco ad interrompere la macro chiudendo il file....
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 05/03/12 23:42

Le mie doti pranoterapeutiche sono sempre state scarse...
Torna alla macro originale, e modificala in testa:
Codice: Seleziona tutto
Sub CalcolaDeltaT()
CntCell = "I10:I50"   '<<<
CntSh = "Foglio2"     '<<<
Stop ="Z1"              '**** 1
If Sheets(CntSh).Range(Stop).Value) <> "" then Exit Sub   '**** 2
'DA QUI CONTINUANO LE ISTRUZIONI PRECEDENTI:
'
Calculate
'etc etc

Cerca sul tuo foglio dei contatori una cella libera e scrivila nella istruzione ****1 (Z1, nell' esempio); terrai la cella vuota quando vuoi che la conta proceda, ci metterai un valore qualsiasi quando vuoi che si fermi.

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

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 06/03/12 20:47

Stop ="Z1" '**** 1
Ciao sei davvero paziente con me come dire ho copiato ma mi viene evidenziata la riga che ti ho copiato qui sopra ed esce la scritta errore di sintassi che faccio.......grazie
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Flash30005 » 06/03/12 21:12

Scusate se mi intrometto in attesa di rettifica
prova a cambiare la variabile Stop in quanto parola chiave (usa StopS o altro termine)
quindi modifica così
Codice: Seleziona tutto
StopS = "Z1"              '**** 1
If Sheets(CntSh).Range(StopS).Value <> "" Then Exit Sub   '**** 2


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: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 06/03/12 21:39

Si ora funziona grazie ad entrambi ......ad Anthony particolarmente per tutto il tempo che mi ha dedicato grazie .
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 07/03/12 00:27

Eh eh, paziente forse, disattento certo.
Alla prossima!
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 12/04/12 21:01

ciao è tanto che non scrivo perchè ho cercato di mettere in pratica le soluzioni che mi hai proposto creando altri file in excel sempre con lo stesso principio del precedente quesito e funzionano molto bene.....ma c'è sempre un ma credo nella vita e anche in questo caso.....se attivo i due file creati ...con le stesse caratteristiche tempo e msgbox esce errore di run-time 9 (indice non incluso nell'intervallo).....poi li devo riattivare per far ripartire il tempo...ma se mi posto tra un file e l'altro ricompare ......solo se affianco le finestre non esce.....che cosa devo fare ????????? grazie tante
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Re: TIME SCADUTO comparsa di MSGBOX

Postdi Anthony47 » 12/04/12 23:06

Se lavori con piu' file e' possibile che quando scatta un "OnTime" quel file non sia attivo; devi pertanto sempre qualificare nelle istruzioni della macro il file a cui le istruzioni si riferiscono.
In pratica invece di Sheets(CntSh) bastera' usare ThisWorkbook.Sheets(CntSh)

Prova e fai sapere.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: TIME SCADUTO comparsa di MSGBOX

Postdi cesare71 » 13/04/12 16:01

funziona ho fatto come mi hai detto...ma ora singolarmente lo stop tempo funziona attivando i due file uno stop funziona e l'altro no ....perchè? grazie
cesare71
cesare71
Utente Junior
 
Post: 22
Iscritto il: 28/02/12 12:23

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "TIME SCADUTO comparsa di MSGBOX":


Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti