je désire réaliser dans une cellule une valeur qui varie de façon aléatoire de 3% toutes les 10 secondes pendant 2minutes sur déclenchement d'un bouton de commande
si quelqu'un a une idée, elle sera forcement la bien venue
Ci joint un exemple... j'espere que ça te conviendra...
Enjoy
Edit : par contre, il y a une fuite de temps quelque part : sur 15 secondes avec une fréquence de 2 secondes, ça ne fait que 5 itérations... mais bon... il n'y a pas grand chose à optimiser, je le crains....
Private Sub CommandButton1_Click()
Dim CurTime As Date
Application.Cursor = xlWait
CurTime = Time()
Range('b10').Value = 0
Range('D10').Value = Range('B2').Value
ActiveSheet.Range('B1') = Time()
Cette première partie initialise le bazar :
je définis les points de départ en terme de valeur a utiliser, heure de début (pour déterminer l'heure de fin) et CurTime : l'heure 'actuelle' qui me permettra de comparer à l'heure réelle pour vérifier si l intervalle est écoulé
Code:
While Time() < (Range('B1').Value + Range('B4').Value)
DoEvents
Tant que l'heure réelle n'a pas dépassé l'heure de début + la duree, on continue... Le doevents est pour laisser la main pour .. s'occuper avec excel en attendant que le temps passe
Code:
If Time() > CurTime + Range('B5').Value Then
Range('D10').Value = Range('D10').Value + (Range('B3').Value * Range('B6').Value)
Range('b10').Value = Range('b10').Value + 1
CurTime = Time()
End If
Si l'heure est > à la derniere heure de traitement + 1 fois la valeur de l'intervalle, alors il est l'heure de :
1- d'ajouter les + ou - 3% à la valeur (le %age multiplié par le +1/-1)
2- D'incrémenter le compteur d'itération (surtout pour qu'on voit que ca bouge et qu'excel n'est pas mort)
3- incidemment, comme on change des valeur de la feuille, on provoque un recalcul de la cellule +1 / -1
Code:
Wend
Application.Cursor = xlDefault
End Sub
Ben.. fin, quoi
A+
PS : écrire en majuscule sur un forum, c'est 'crier' et crier, c'est mal