Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Macro a tempo

104 views
Skip to first unread message

Francesco

unread,
Feb 23, 2008, 7:34:30 AM2/23/08
to
Salve a tutto il NG, ho di nuovo bisogno del vostro aiuto.
Mi spiego, in un foglio di excel č visualizzato un userform con dei comandi.
Io vorrei che chiudendo l'userform, alla pressione del comando "esci"
l'userform si chiuda e si attivi una specie di conto alla rovescia, diciamo
di 5 minuti.
Allo scadere dei 5 minuti si dovrebbe attivare un altro userform.
Chi mi da una mano per favore ??
Grazie a tutti

Ciao


r

unread,
Feb 23, 2008, 11:21:01 AM2/23/08
to
nella guida in linea ... l'esempio della funzione Timer dovrebbe fare al caso
tuo ... viene utilizzata insieme alla funzione DoEvents (
Timer membro di VBA.DateTime)
ciao
r

"Francesco" ha scritto:

> Salve a tutto il NG, ho di nuovo bisogno del vostro aiuto.

> Mi spiego, in un foglio di excel è visualizzato un userform con dei comandi.

Maurizio Borrelli

unread,
Feb 23, 2008, 1:06:08 PM2/23/08
to
"r" wrote in message
news:51DBE346-068E-4E77...@microsoft.com:
> "Francesco" ha scritto:

[...]


> > Allo scadere dei 5 minuti

[...]


> nella guida in linea ... l'esempio della funzione Timer dovrebbe fare al caso
> tuo ... viene utilizzata insieme alla funzione DoEvents (
> Timer membro di VBA.DateTime)

Ciao r.

... augurandosi che Francesco non faccia partire il meccanismo quando
per esempio mancano tre minuti a mezzanotte. ;-)

--
Maurizio Borrelli [Microsoft MVP - Excel]
http://www.riolab.org/


Francesco

unread,
Feb 23, 2008, 1:56:27 PM2/23/08
to
Grazie 1000 Maurizio, leggo e vedo che posso combinare.
Approfitto della tua gentilezza per chiedere ancora una cosa.
All'apertura di un foglio di excel vorrei mettere un userform di login con
una textbox e un pulsante
All'inserimento nella textbox di una pass, se corretta appare un userform se
errata ne appare un altro
Come posso fare, ho cercato in rete ma non ho trovato nulla
Ciao e grazie


Maurizio Borrelli

unread,
Feb 23, 2008, 8:32:39 PM2/23/08
to
"Francesco" wrote in message
news:47c012d0$0$4789$4faf...@reader4.news.tin.it:

> in un foglio di excel č visualizzato un userform con dei comandi.
> Io vorrei che chiudendo l'userform, alla pressione del comando "esci"
> l'userform si chiuda e si attivi una specie di conto alla rovescia, diciamo
> di 5 minuti.
> Allo scadere dei 5 minuti si dovrebbe attivare un altro userform.

Ciao Francesco.

Potresti cominciare consultando la Guida a proposito di:

Sub OnTime(EarliestTime, Procedure As String, [LatestTime], [Schedule])
Membro di Excel.Application

Function Wait(Time) As Boolean
Membro di Excel.Application

Poi, se serve aiuto... fischia. ;-)

(Facci sapere se e eventualmente come hai risolto. Grazie!)

Francesco

unread,
Feb 24, 2008, 4:20:39 AM2/24/08
to
Ciao Maurizio, per quanto riguarda la macro a tempo ho risolto cosě:

Private Sub CommandButton1_Click()
Unload Me
Application.OnTime Now + TimeValue("00:05:00"), "conta"
End Sub

Alla pressione di CommandButton1 chiude l'userform e inizia un conto alla
rovescia di 5 min.
Dopo 5 min. esegue la sub "conta"

Sub conta()
Load UserForm2
UserForm2.Show
End Sub

Avevi ragione, bastava leggere meglio la guida, č anche vero che una dritta
da chi ne sa di piů, aiuta ha guardare prima nei posti giusti.
Adesso non sň come fare per la pass di login dell'userform, fino a creare
tutti gli userform ci arrivo, il codice per il funzionamento della pass č
buio totale, come posso fare ??


Maurizio Borrelli

unread,
Feb 24, 2008, 5:57:40 AM2/24/08
to
"Francesco" wrote in message
news:47c136e1$0$17943$4faf...@reader1.news.tin.it:

> per quanto riguarda la macro a tempo ho risolto cosě:
> Private Sub CommandButton1_Click()
> Unload Me
> Application.OnTime Now + TimeValue("00:05:00"), "conta"
> End Sub
> Alla pressione di CommandButton1 chiude l'userform e inizia un conto alla
> rovescia di 5 min.
> Dopo 5 min. esegue la sub "conta"
> Sub conta()
> Load UserForm2
> UserForm2.Show
> End Sub

[...]


> Adesso non sň come fare per la pass di login dell'userform, fino a creare
> tutti gli userform ci arrivo, il codice per il funzionamento della pass č
> buio totale, come posso fare ??

Ciao Francesco.

Prima una domanda: perche' non usi la gestione della password di Excel?
Intendo la password a livello file, quella che imposti al salvataggio.
In questo modo il file potra' essere aperto solo da chi conosce la
password. Col sistema degli UserForm invece il file potra' essere aperto
senza che il tuo codice intervenga.

Francesco

unread,
Feb 24, 2008, 7:08:05 AM2/24/08
to
Ciao Maurizio, l'intenzione sarebbe di fare un file che rimane aperto tutta
la giornata, si apre al mattino alle 8:00, e si chiude alla sera alle 19:00
In questo lasso di tempo, il file viene usato da 3/4 persone per fare
fatture, preventivi,comunicazioni ecc.
Il file in oggetto è praticamente un percoso guidato, si può fare solo
quello che è stato deciso che il file faccia, ninte di piu.
Quindi, il file si apre alle 8:00, l'operatore alle 8:30 si trova davanti
alla schermata di login, inserisce la pass e accede.
Fa quello che deve e se ne va, il file in automatico, dopo 2 minuti si
rimette in posizione di login e aspetta il prossimo operatore e così via
fino alla fine della giornata.
Alla fine della giornata, arrivo io, pass, salvataggio di tutto quanto fatto
durante il giorno e chiusura del file.
Tieni presente che quando il file è in funzione, un userform è sempre
attivo, ho inserito una istruzione che inibisce la chiusura con la classica
"X" in alto a destra, alt + f4 e alt + tab, quindi per forza o ci stai
lavorando o inserisci una pass valida.
L'istruzione che ho inserito è la seguente:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As _
Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

Pare che funzioni a dovere, per la richiesta di pass, ho utilizzato il
seguente codice:

Private Sub CommandButton1_Click()
If TextBox1 <> "paperino" Then
MsgBox ("PASSWORD NON CORRETTA - ACCESSO NON CONSENTITO")
Unload Me
Load UserForm3
UserForm3.Show
ElseIf TextBox1 <> "-" Then
MsgBox ("PASSWORD CORRETTA - ACCESSO CONSENTITO")
Unload Me
Load UserForm2
UserForm2.Show
End If
End Sub

Anche questo sembra che funzioni, anche se onestamente non capisco come
faccia, in fondo sono un autodidatta di VBA, cerco informazioni in rete, da
persone che ne sanno più di me e mi adatto a quello che trovo.
Se ne hai voglia, ti chiederei di spiegarmi come fa ha funzionare il codice
sopra.
Secondo me dovrebbe funzionare al contrario.

Ciao e grazie 1000 per l'attenzione

r

unread,
Feb 24, 2008, 5:33:01 PM2/24/08
to

"Maurizio Borrelli" ha scritto:

> .... augurandosi che Francesco non faccia partire il meccanismo quando

> per esempio mancano tre minuti a mezzanotte. ;-)

in tal caso avrebbe un bug ... e sarebbe costretto ad un poco elegante
Ctrl+Alt+Canc
:-)
r

0 new messages