Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres fonction "ALEA.ENTRE.BORNES"

  • Initiateur de la discussion Initiateur de la discussion delta6x
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Solution
Autre possibilité sans formule :
VB:
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
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 :
VB:
Sub Alea()
    Randomize
    For Each c In [A1:E20]
        Range(c.Address) = Application.RandBetween(4, 20)
    Next c
End Sub
Par contre, que veux dire cela :
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.
Cela sous entend que la première macro tournerai en permanence ????
 
Si c'est le cas :
VB:
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
 
Autre possibilité sans formule :
VB:
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.
 
Les solutions de Sylvanu, de Dranreb (possibilité sans formule) et de Efgé me conviennent parfaitement. Je ne connais pas votre QI, ni le niveau de vos de connaissances, mais je serai toujours épaté devant la rapidité et l'exactitude de vos réponses.
Je crois que je n'ai droit qu'à cocher une seule solution (au hasard : Dranreb). En tous cas, merci à ceux qui ont pris la peine de répondre.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
280
  • Question Question
Microsoft 365 Liens hypertexte
Réponses
4
Affichages
279
Réponses
4
Affichages
128
Deleted member 453598
D
Réponses
6
Affichages
151
Réponses
3
Affichages
189
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…