Option Explicit
Private HOT As Date
Sub Recalculer()
Dim T(1 To 20, 1 To 5), L&, C&
Randomize
For L = 1 To 20: For C = 1 To 5
T(L, C) = Int(Rnd * 17 + 4): Next C, L
Feuil1.[A1:E20].Value = T
HOT = Now + TimeSerial(0, 0, 1)
Application.OnTime HOT, "Recalculer"
End Sub
Sub ArrêterCalcul()
If HOT = 0 Then Exit Sub
On Error Resume Next
Application.OnTime HOT, "Recalculer", Schedule:=False
HOT = 0
End Sub
=ALEA.ENTRE.BORNES(4;20)
Sub Alea()
Randomize
For Each c In [A1:E20]
Range(c.Address) = Application.RandBetween(4, 20)
Next c
End Sub
Cela sous entend que la première macro tournerai en permanence ????attribuer une macro à une seconde image pour arrêter la première macro sur la dernière grille de notes générée, si possible.
Option Explicit
Private HOT As Date
Sub Recalculer()
Feuil1.Calculate
DoEvents
HOT = Now + TimeSerial(0, 0, 1)
Application.OnTime HOT, "Recalculer"
End Sub
Sub ArrêterCalcul()
If HOT = 0 Then Exit Sub
On Error Resume Next
Application.OnTime HOT, "Recalculer", Schedule:=False
HOT = 0
End Sub
Option Explicit
Private HOT As Date
Sub Recalculer()
Dim T(1 To 20, 1 To 5), L&, C&
Randomize
For L = 1 To 20: For C = 1 To 5
T(L, C) = Int(Rnd * 17 + 4): Next C, L
Feuil1.[A1:E20].Value = T
HOT = Now + TimeSerial(0, 0, 1)
Application.OnTime HOT, "Recalculer"
End Sub
Sub ArrêterCalcul()
If HOT = 0 Then Exit Sub
On Error Resume Next
Application.OnTime HOT, "Recalculer", Schedule:=False
HOT = 0
End Sub
oui, bonjour, j'avais fait un essai. Les chiffres changeaient à chaque nouvelle saisie, ce qui est normal. Pour rester sur la dernière grille générée et arrêter la macro, j'ai essayé de faire un copier-coller normal dans un autre fichier excel, un autre copier-coller spécial avec uniquement copier les valeurs, un autre copier-coller dans un document word mais dans tous les cas, la macro continuait tout de même de tourner. C'est pour ça que je voulais attribuer une macro à une autre image pour arrêter la première.Bonjour Delta, Dranreb,
Suivant le contexte, on peut aussi avoir besoin d'une macro, ce qui permet de ne pas changer de valeurs à chaque recalcul. Par ex comme ça :
Par contre, que veux dire cela :VB:Sub Alea() Randomize For Each c In [A1:E20] Range(c.Address) = Application.RandBetween(4, 20) Next c End Sub
Cela sous entend que la première macro tournerai en permanence ????
Bonjour, j'avais besoin de cette macro pour expliquer quelques trucs à des utilisateurs d'excel aussi nuls que moiBonjour.
Pourquoi avez vous besoin d'une macro pour installer en A1, à propager sur 20 lignes et 5 colonnes :Et qu'est-ce que vous voulez arrêter ?Code:=ALEA.ENTRE.BORNES(4;20)