Domanda.

nome=ANTONELLO
cognome=POLIMENO
versione=EXCEL PER XP
conosco2=medio
vba=SI
macro=SI
email=polianto@katamail.com
chra=417
problema=Io sono di estrazione elettrotecnica; avete presente un timer ritardato all'eccitazione? Quando si dà tensione alla bobina del timer parte il tempo e trascorso il tempo impostato il contatto commuta. Bene.
Sono riuscito a realizzare un timer ritardato all'eccitazione su un foglio di excel tramite una routine sub associata ad un
pulsante ma la stessa routine, trasformata in function in modo da incollarla in una qualunque cella attraverso il menù Inserisci-
Funzione-Definite dall'utente, non vuole saperne di funzionare.
Le ho provate tutte.
Potete aiutarmi?

Cordiali saluti
 

Risposta.

salve Antonello, no, non so cos'è un timer ritardato, ma so che esiste una differenza tra procedure (le macro o routines) e funzioni; le prime compiono un azione, le seconde restituiscono un valore in dipendenza degli "argomenti" passate ad esse. Dipende quindi dal tipo di istruzioni previste.
Questa Funzione "funziona": con "Dato", argomento della funzione; prendiamo un numero, scritto per esempio in A1, che corrisponderà al tempo di pausa tra attivazione funzione e restituzione valore, e come "Tempo" verrà quindi restituito il tempo di Timer (che come sai conta quanti secondi sono trascorsi dalla mezzanotte) + il tempo di pausa

Function Tempo(Dato As Long)
TotalTime = Dato
PauseTime = TotalTime
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Tempo = Timer
End Function


se in A1 scrivi 5 e in B1 inserisci =Tempo(A1), in B1 otterrai il risultato di Tempo che sarà il numero di secondi trascorsi dalla mezzanotte fino al momento in cui scrivi 5 in A1, momento in cui attivi Timer, + i 5 secondi di pausa scritti in A1.
Altre condizioni non mi vengono in mente, ma comunque non puoi usare tutte le macro come funzioni.
saluti, ennius