Condividi:        

excel impostare un timer

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

excel impostare un timer

Postdi PAGLIA 2017 » 18/04/17 00:14

Buona sera a tutti,

Premetto che è la mia prima volta in assoluto che partecipo ad un forum.
Ho provato trovare risposte nell'argomento ma invano.
Ho un ristorante e vorrei poter creare su di un foglio excel la piantina del locale dei tavoli, e su di ognuno attivare una serie di timer che scattino e si fermino al cambiare dello stato del tavolo,descritto in una cella.

se mi spiegate come allegare immagine, il file sarebbe molto piu chiaro da capire. Comunque intanto provo a descriverlo:

Esempio:
su A11 il numero del tavolo (che prende la grandezza di tre colonne A,B,C)
su D11 un menu a tendina dove ci sono varie voci tipo "da prendere";"preso" etc....
da D5 a D10 l'elenco di tutte le voci presenti nel menu a tendina in d11
da A5 a A10 i timer di ogni status del tavolo che si devono attivare e stoppare nel momento che D11 cambia.

Il risultato vorrei che fosse che possa capire quanto un tavolo ci impiega ad ordinare,quanto per essere servito etc....

Spero di essermi spiegato e spero che qualcuno possia aiutarmi.

Grazie in anticipo
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Sponsor
 

Re: excel impostare un timer

Postdi Anthony47 » 18/04/17 01:35

Ciao Paglia2017, benvenuto nel forum.

Secondo me il modo piu' semplice e' di creare in colonna A l'elenco dei tavoli; poi le colonne B, C, D, etc sono usate per indicare gli "stati" che il tavolo puo' assumere.
Esempio: Occupato, Preso Ordinazione, ..., Liberato

Poi con un "doppioclick" sulla cella inserisci l'ora di entrata nell stato; infine tramite formule che fanno la differenza tra l'ora dell'inizio stato e inizio stato successivo calcoli la durata dei singoli stati su cui fai le tue statistiche.
Per mettere l'orario con un doppioclick userai una macro come questa:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myArea As String
'
myArea = "B:G"          '<<< Le colonne dedicate agli stati
'
If Not Application.Intersect(Target, Range(myArea)) Is Nothing Then
    Cancel = True
    Target.Value = Now - Int(Now)
End If
End Sub
Operativamente, partendo dal foglio su cui si lavora:
-tasto dx sul tab col nome del foglio; scegli Visualizza codice; copia il codice e incollalo nel frame vuoto di dx.
-personalizza la riga marcata <<< come da commento

Poi torna sul foglio di lavoro e prova a fare doppioclick sulle colonne dedicate agli stati; l'area di lavoro su cui si fara' doppioclick deve essere formattata come Orario.

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

Re: excel impostare un timer

Postdi PAGLIA 2017 » 18/04/17 01:56

Ciao Anthony47,

Grazie mille!
il tuo ragionamento a davvero un senso!
A primo approccio sembra che vada, devo solo impostare ,come dicevi, le formule di sottrazione per estrapolare le mi statistiche!

Se riesco ti faccio sapere!

Di nuovo grazie mille
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi PAGLIA 2017 » 18/04/17 03:43

Ciao Anthony47,

Ci sono riuscito!

volevo chiederti se fosse possibile anche un cronometro però, perchè devo poter sapere quanto sta aspettando un tavolo prima di ordinare in tempo reale, e non solo ai fini statistici!

Se fosse possibile mi faresti sapere!

grazie
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi PAGLIA 2017 » 18/04/17 03:44

scusa ,il farmi sapere era sotto forma di domanda.
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi Anthony47 » 18/04/17 23:53

Allora, in una colonna libera oltre le colonne usate per il doppioclick inserisci questa formula da copiare poi verso il basso (io ho iniziato in L2)
Codice: Seleziona tutto
=SE(MAX(B2:G2)>0;RESTO(ADESSO();1)-MAX(B2:G2);"")
(se le colonne del doppioclick non sono B:G modifica di conseguenza)
In questo modo tutte le volte che esegui qualche operazione la formula ti dira' il tempo trascorso dall'ultimo doppioclick fatto su quella riga.

Per rendere il timer automatico bisogna schedulare una macro che ogni secondo fa il ricalcolo.
Per questo scopo inserisci in un Modulo standard del vba (es Modulo1) questo codice:
Codice: Seleziona tutto
Sub oneSec()
Calculate
miofoglio = "Foglio2" '<<<Il foglio di lavoro dei doppioclick
If ThisWorkbook.Sheets(miofoglio).Range("Z1") > 0 Then
    Application.OnTime Now + TimeValue("00:00:01"), "oneSec"
    ThisWorkbook.Sheets(miofoglio).Range("Z1") = TimeValue("00:00:01")
End If
End Sub
Personalizza la riga marcata <<< come da commento
NB: Il ragionamento assume che la cella Z1 del foglio di lavoro sia libera e verra' usata dalla macro.

Questa macro, una volta avviata, si eseguira' ogni secondo consentendo cosi' l'incremento real time dei contatori.

Per avviarla la prima volta automaticamente modifichiamo anche la macro che ti ho suggerito ieri sera:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myArea As String
'
If Range("Z1") = 0 Then [Z1] = 10: Call oneSec
myArea = "B:G"          '<<< Le colonne dedicate agli stati
'
If Not Application.Intersect(Target, Range(myArea)) Is Nothing Then
    Cancel = True
    Target.Value = Now - Int(Now)
End If
End Sub
In questo modo a ogni doppiolick si controlla che la Sub oneSec sia gia' avviata ed eventualmente la si avvia.

Quando vuoi chiudere il file e' meglio prima cancellare Z1 e poi procedere alla chiusura.

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

Re: excel impostare un timer

Postdi PAGLIA 2017 » 20/04/17 23:35

Ciao,

Ho fatto tutto quello che hai scritto, almeno credo, ma non credo che funzioni, sicuramente ho sbagliato qualcosa!
se provo anche a far partire la macro dalla sezione sviluppo, mi da questo errore:

errore di run-time '9':
indice non incluso nell'intervallo


con la possibilità di premere o "fine" o "debug"

Ti potrei mandare, in via privata il file almeno capisci meglio cvhe casino ho fatto?
o non si puo fare ?

fammi sapere

Grazie
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi Anthony47 » 21/04/17 00:28

Sono restio a lavorare in privato, e' contrario al concetto di forum; d'altra parte non vedo quali informazioni confidenziali possano trovarsi nel file che hai preparato.
Intanto non c'e' bisogno di avviare nessuna macro, quel che deve succedere avviene sull'evento doppioclick
Se anche in questo modo va in errore allora premi debug e spiega quale riga viene evidenziata e quale e' il messaggio di errore.

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

Re: excel impostare un timer

Postdi PAGLIA 2017 » 21/04/17 00:51

Ok ,capisco!
cmq nulla di confidenziale, numeri di tavoli con una tabellina! per quanto mi riguarda potrei metterlo anche qui per la visione di tutti.

Cmq ,per il momento vediamo se riesco a spiegarmi:

allora premo debug si evidenzia questa riga di giallo:

If ThisWorkbook.Sheets(miofoglio).Range("Z1") > 0 Then

Ma principalmente anthony ti devi ricordare che non mastico bene queste cose!
io per il momento non ho fatto altro che copiare ed incollare quello che mi hai scritto.
Tutte quelle scritte per i moduli per me sono quasi arabo.
Mi viene da pensare quando tu mi hai chiesto di schedulare e bla bla con un modulo standard , di aver aver fatto casino in quel momento! o per esempio il nome del foglio che ho dato ,che non è "foglio 2" ma "sx-carovane-miniera", che ho cambiato dove tu mi dicevi il foglio di lavoro del doppio click; non dovevo farlo? o se si avrei dovuto cambiarlo anche nel (mio foglio)?

E non so se fa parte di un mio errore, ma quando faccio il primo doppio click , nella cella quella per il cronometro,non parte proprio il cronometro, ma sembra che sia il tempo che ci ha impiegato per eseguire.

Non so se mi sono spiegato.
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi PAGLIA 2017 » 21/04/17 01:19

Vediamo se riesco ad aiutarti per aiutarmi.

il foglio è cosi composto:

La riga 1 è completamente vuota
Nella riga 2 da "B" a "I" ci sono gli stati e nella cella "C" vorrei mettere "attesa ordine" cioè il cronometro che mi dice quanto tempo sta passando da quando ho fatto il doppio click su "B3" per esempio (in questo caso è il mio primo tavolo dell'elenco),quindi il cronometro partirebbe in "C3". Questo cronometro si deve fermare quando faccio doppio click in "E3" ,colonna intitolata "preso".
Tutto questo si deve ripetere per tutti i tavoli presenti, elencati da "A2" in giu!

Il risultato vorrei che fosse:

"A3" numero del tavolo
"B3" orario di quando viene fatto accomodare,e partire il cronometro in "C3"
"C3" cronometro di quanto sta aspettando prima di ordinare
"E3" orario di quando viene preso l'ordine,e che mi ferma il cronometro in "C3".


Meglio cosi?
Grazie per la pazienza.
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi neroverde » 21/04/17 16:12

Questo si può definire un timing perfetto... Anch'io sto ragionando da giorni su come impostare un timer su Excel e finora nessun tentativo era andato a buon fino.

Adesso proverò a mettere in pratica i suggerimenti scritti da Anthony47. Grazie mille! 8)
neroverde
Newbie
 
Post: 3
Iscritto il: 21/04/17 16:08

Re: excel impostare un timer

Postdi PAGLIA 2017 » 21/04/17 23:01

Ah guarda neroverde, se non fosse che la mia testa è malata, sarebbe stato perfetto anche per me!
Lode a anthony47, perchè non sia scontato saper fare queste cose!

buon lavoro

ciao
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi PAGLIA 2017 » 23/04/17 00:16

Ciao anthony,

Ti sei arreso?

guarda che ti ho fatto anche i complimenti!

;) ;) ;) ;)
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi Anthony47 » 24/04/17 01:09

Ciao anthony,
Ti sei arreso?
Quando manca il tempo l'effetto e' questo...
Comunque io ti avevo dato una macro che conteneva questa riga:
Codice: Seleziona tutto
miofoglio = "Foglio2" '<<<Il foglio di lavoro dei doppioclick

Le istruzioni dicevano "Personalizza la riga marcata <<< come da commento": tu come hai personalizzato la riga? Il nome che hai inserito e' quello su cui lavori con il doppioclick? Almeno esiste nella tua cartella di lavoro?

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

Re: excel impostare un timer

Postdi PAGLIA 2017 » 24/04/17 01:32

Ciao,

Ma io scherzo! Apprezzo molto, qua do puoi!

Si, al posto di foglio 2, ho messo "sx-carovane-miniera", che è il nome del foglio in cui lavoro!

Ciao
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi Anthony47 » 24/04/17 01:55

Mi viene da pensare quando tu mi hai chiesto di schedulare e bla bla con un modulo standard , di aver aver fatto casino in quel momento! o per esempio il nome del foglio che ho dato ,che non è "foglio 2" ma "sx-carovane-miniera", che ho cambiato dove tu mi dicevi il foglio di lavoro del doppio click; non dovevo farlo? o se si avrei dovuto cambiarlo anche nel (mio foglio)?

Non capisco a cosa alludi quando scrivi "avrei dovuto cambiarlo anche nel (mio foglio)?"; nella macro devi inserire il nome del foglio di lavoro su cui fai doppioclick, e mi confermi che lo hai fatto; allora per "(mio foglio)" cosa intendi?

Io direi che se non alleghi il file con quello che hai fatto non ci capiamo.
Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: excel impostare un timer

Postdi PAGLIA 2017 » 24/04/17 02:55

Ciao

Si mi sa che ho fatto casino!

vediamo se ho eseguito la procedura corretta per allegare il file!

Considera che ho cancellato tutto e rifatto fino al passaggio del cronometro e lo Z1.
Ho rimesso il nome al foglio "foglio 2"

http://www.filedropper.com/cronometropertavoliprova3

spero bene

grazie
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi PAGLIA 2017 » 24/04/17 02:59

ah

il foglio 1 non considerarlo, e' la prima versione che mi era venuta in mente, poi ho seguito la tua logica nel foglio 2, o almeno ci ho provato!

ciao
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi PAGLIA 2017 » 24/04/17 04:15

Basta ,bisogna che vado a letto.
Non riesco piu a cervellarmi per capire che ho sbagliato.

anthony prenditi il tuo tempo, ti riassumo quello che mi servirebbe:

doppio click su "B3" visualizzo orario e vorrei che partisse cronometro in "C3"
doppio click su "E3" visualizzo orario e vorrei che si fermasse cronometro in "C3"

il tutto da ripetersi in tutte le righe,per quanto sono i tavoli,come il file allegato.

tutte le altre voci in tabella, sono delle cavolate,che vorrei vedere ma che non partecipano alla questione.

Ti ringrazio immensamente per il tuo tempo, a prescindere o meno della buona riuscita.

notte
PAGLIA 2017
Utente Junior
 
Post: 42
Iscritto il: 17/04/17 17:40

Re: excel impostare un timer

Postdi Anthony47 » 24/04/17 12:26

Il file che ho scaricato include un "Progetto VBA" con 8 Moduli destinati a contenere macro standard e 1 Modulo di classe destinato a contenere definizioni di proprieta' con cui creare nuovi "oggetti"; inoltre nei Riferimenti del vba e' "spuntata" la Libreria Microsoft Outlook 15.0. Non e' che stai cercando di fare una cosa piu' grande di quel che sei gia' in grado di fare?

Sono inoltre presenti due Sub oneSec, una in Modulo4 l'altra in Modulo8.
La versione in Modulo4 contiene istruzioni modificate rispetto a quanto da me pubblicato; l'ho rinominata per renderla innocua, lascio a te il compito di cancellarla. La versione in Modulo8 e' analogaamente modificata a caso e anche quella te la lascio rinominata e si puo' eliminare.

La Sub Worksheet_BeforeDoubleClick non e' allineata con la versione "18-apr sera tardi", ma alla prima (18-apr matt presto); anche questa l'ho rinominata per renderla innocua.

Inoltre, dalla tua ultima descrizione, vorresti tanti timer; poiche' un solo stato alla volta e' attivo, ti potresti accontentare di un unico timer (come avevo suggerito), che conta l'elapsed time nello stato corrente, mentre ho visto che in colonne J:M hai delle formule per calcolare la durata di alcuni stati che evidentemente sono importanti.

A questo punto:
-ho inserito la mia Sub Worksheet_BeforeDoubleClick versione "18-apr sera tardi", modificando l'istruzione marcata <<< per puntare alle colonna B:I
-ho inserito la Sub oneSec in Modulo1 (avevo vasta scelta di moduli) e ho modificato l'istruzione marcata <<< perche' puntasse a "Foglio 2"

Per il singolo contatore incrementale ho messo in P3 e P4 la formula che avevo suggerito il "18-apr sera tardi"
Codice: Seleziona tutto
=SE(MAX(B3:I3)>0;RESTO(ADESSO();1)-MAX(B3:I3);"")
(adattata al tuo elenco colonne)

A questo punto se faccio doppiclick in una colonna dell'area B:I viene inserita nella cella l'ora corrente, e nella cella P3 il contatore incrementa.
Se cancello Z1 il processo si ferma e il file puo' essere chiuso, o ripreso col successivo doppioclick.

Il file cosi' modificato e' reperibile qui: https://www.dropbox.com/s/8mo6yd4boc6cm ... 4.xls?dl=0

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

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "excel impostare un timer":


Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti