Condividi:        

Ciclo di numeri ma temporizzati

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

Ciclo di numeri ma temporizzati

Postdi Statix » 11/02/18 11:11

Ciao a tutti,
ho bisogno di una macro che mi temporizza un ciclo di numeri,
esempio
in B2 scrivo 1
in B3 scrivo 90
in B4 scrivo il tempo, espresso in secondi millesimali esempio 5,95756
con un pulsante Start mi parte il ciclo da 1 a 90 e trascorso il tempo di B4 si fermi
e mi scriva il numero in C2 ,
nota bene il ciclo da 1 a 90 deve essere ripetitivo finche non arriva al tempo stabilito in B4,
ho cercato su internet ma trovo solo quelli casuali e non a tempo stabilito.
quindi deve fare un loop finche non si verifica la condizione.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Sponsor
 

Re: Ciclo di numeri ma temporizzati

Postdi Statix » 11/02/18 13:06

ho riscontrato un altro problema ,il tempo di esecuzione di un ciclo dipende direttamente dalla potenza del processore installato,
tipo di memoria etc.etc. quindi ad ogni esecuzione ho tempi diversi,
si dovrebbe far ciclare 1 a 90 come se fossero secondi reali,
così anche cambiando computer o altro avro sempre gli stessi tempi,
sempre se è fattibile
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Ciclo di numeri ma temporizzati

Postdi Statix » 11/02/18 14:17

allora per essere più precisi,
se faccio un ciclo for next da 1 to 90
ed ogni numero ci mette un secondo ,il ciclo dovrebbe impiegare 1 minuto è mezzo,
anche cambiando computer più lenti deve sempre impiegare 1 minuto e mezzo,
naturalmente se si applica un secondo ad ogni numero ,
mentre se applico 1/2 secondo ad ogni numero il ciclo impiegherà la metà cioè 45 secondi,
quindi in una cella metto un tempo stabilito e il ciclo for next 1 to 90 deve impiegare
quel tempo per ogni numero, questo per sincronizzare il ciclo con il tempo reale e non in base alla velocità dei computer.
dopo aver fatto tutto questo il ciclo deve fare un loop infinito. il tempo totale verrà scritto in una cella ,
che in base ad una condizione, se è uguale al tempo che ho scritto in una cella si ferma il loop.
spero che sia stato chiaro.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Ciclo di numeri ma temporizzati

Postdi Anthony47 » 11/02/18 23:10

Diciamo che hai un problema (che non hai indicato) e hai in mente una ipotesi di soluzione per quel problema (parte di quanto hai indicato). Solo che, non sapendo il problema da risolvere io non capisco quel che chiedi. Non so gli altri...

Proposta:
-tu ci dici il problema (reale) da risolvere, noi ci dimentichiamo di come hai pensato di risolverlo e insieme vediamo come si puo' fare.

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

Re: Ciclo di numeri ma temporizzati

Postdi Statix » 11/02/18 23:31

Ciao Anthony47,
ho un ciclo For Next da 1 a 90,
in una cella A1 ho un valore di 5 secondi
questo ciclo deve ripetersi finche non sono trascorsi 5 secondi cella (A1)
a questo punto la condizione è verificata è ferma il ciclo, exit for
il problema e il contatore iniziale che conta i secondi trascorsi dal ciclo (cella A2)per la condizione da inserire nella macro

Codice: Seleziona tutto
Sub Numero()
Dim tempo As Single
For A = 1 To 90
If Range("A1") = Range("A2") Then Exit For


    Cells(2, 2) = A
   
    tempo = Timer
    Do Until Timer - tempo >= 0.2
    Loop
Next
End Sub
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Ciclo di numeri ma temporizzati

Postdi Anthony47 » 11/02/18 23:45

Forse cosi'?
Codice: Seleziona tutto
Sub Numero2()
Dim Tempo As Single
Tempo = Timer
Do
    For a = 1 To 90
    'If Timer > (Tempo + Range("A1").Value) Or Timer < Tempo    '???
        'il ciclo con le sue istruzioni
   
    Next
If Timer > (Tempo + Range("A1").Value) Or Timer < Tempo Then Exit Do
Loop

End Sub

A1 contiene (da quel che ho capito) per quanti secondi deve durare il ciclo.

In questo modo il ciclo For /Next si conclude sempre prima di uscire dal loop.
Abilitando invece l'istruzione marcata ??? (togliere l'Apostofo iniziale) il loop si interrompe appena sono passati N secondi, senza necessariamente completare il ciclo For /Next

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


Torna a Applicazioni Office Windows


Topic correlati a "Ciclo di numeri ma temporizzati":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti