• Initiateur de la discussion Initiateur de la discussion Eric
  • 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 !

E

Eric

Guest
Bonjour

Je souhaite obtenir en colonne A une suite de lettres aléatoires qui ne seront que des 'R' ou des 'N' avec une fréquence d'apparition toutes les 3 secondes grâce à une macro
Merci d'avanc pour votre aide
Eric
 
Bonsoir Eric,

Tu peux essayer les 2 procédures ci-dessous :
Option Explicit
Dim
vTemp As Variant

Sub GoAlea()
Dim L As Long
      vTemp = Now + TimeValue('00:00:01')
      Application.OnTime vTemp, 'GoAlea'
      Randomize
      With Sheets('Feuil1')
            L = .Range('A65536').End(xlUp).Row + 1
            .Cells(L, 1).Value = IIf(Int(2 * Rnd + 1) > 1, 'R', 'N')
      End With
End Sub


Sub StopAlea()
      Application.OnTime vTemp, 'GoAlea', , False
End Sub
Cordialement,
 
Merci bien myDearFriend

J'ai copcol ta première proposition qui marche impec !
J'ai aussi crée un bouton pour la mise en route de la macro , mais impossible d'arrêter le défilement des lettres après
Peut-tu me donner une solution pour mise en route et arrêt à volonté ?

Merci encore
Eric
 
Re Eric,

De la même manière que tu as fait lorsque tu as rattaché ton bouton à la procédure 'GoAlea', je pense qu'un autre bouton lié à la procédure 'StopAlea' serait une bonne idée... 😉

Ou bien, tu peux essayer d'utiliser un bouton bascule (ToggleButton) qui permettrait de gérer les deux :
Private Sub ToggleButton1_Click()
      If ToggleButton1.Value Then
            GoAlea
      Else
            StopAlea
      End If
End Sub
Cordialement,
 
Bonjour myDearFriend

Je suis un gros nul et je n'arrive pas à mettre bout à bout tes 2 propositions avec le bouton à bascule :S

Option Explicit
Dim vTemp As Variant

Sub GoAlea()
Dim L As Long
vTemp = Now + TimeValue('00:00:01')
Application.OnTime vTemp, 'GoAlea'
Randomize
With Sheets('Feuil1')
L = .Range('A65536').End(xlUp).Row + 1
.Cells(L, 1).Value = IIf(Int(2 * Rnd +
1) > 1, \\'R\\', \\'N\\')
End With
End Sub

Sub StopAlea()
Application.OnTime vTemp, 'GoAlea', , False
End Sub

Private Sub ToggleButton1_Click()
If ToggleButton1.Value Then
GoAlea
Else
StopAlea
End If
End Sub

Je dois tout copier comme ça ???

Désolé 😱
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
195
Réponses
1
Affichages
443
Réponses
2
Affichages
276
Réponses
1
Affichages
121
Réponses
3
Affichages
310
Retour