Interompre une macro

Résolu
Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -  
Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un jeu bingo avec un tirage que je lance avec un code
je voudrais mettre 2 bouton, 1 pour interompre ce code et 1 deuximme pour reprendre ce code la ou il a ete inerompu, j'ai essayer avec ctrl+pause et f9 mais cella eface cetaine celulles ce qui ne peut etre le cas
deja je remerci pour les eventuelle reponce
cordialement Dandy_dan

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Ce qui serait le plus logique c'est que ton code prévoit l'interruption et la reprise : tu ne crois pas ?
    0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Interrompre ou arrêter ?

    Pour interrompre c'est assez simple mais on ne peut pas reprendre à l'aide d'un bouton :
    Private Sub CommandButton1_Click()
      Stop
    End Sub 

    Pour arrêter / redémarrer, il faut prévoir une procédure pour chacun qui mémorise / restitue le contexte (valeur des variables).
    Cordialement
    Patrice
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Salut Patrice,

      Pour interrompre c'est assez simple
      Tu es sûr que ton code va arrêter la procédure qui calcule aléatoirement un tirage ???
      0
    2. Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
       
      Rebonjour;
      ceci est le code qui genere un novaeu monber toutes les 15 seconde
      mon souci est que l'orsqu'un joueur a les 4 coin je dois faire un pause et reprendre le tirage la ou il c'est arrete.
      encore merci pour le temps que vous me consacre

      Dim Interval, x

      Sub Change_Formule()
      ' Touche de raccourci du clavier: Ctrl+k
      Interval = 15 'modifiable
      x = 1
      Call Comptage
      End Sub

      Sub Comptage()
      'adaptez le nom de feuille
      Worksheets("Treking").Range("h5").FormulaLocal = "='blad1'!c" & x
      'incremente pointeur cellule
      x = x + 1
      'sortie
      If x > 90 Then Exit Sub
      'attente relance macro
      Application.OnTime Now + TimeValue("0:00:" & Interval), "Comptage"
      End Sub
      0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Pour tes boutons je te propose ce code à adapter selon ta feuille
    Private Sub CommandButton1_Click() ' stop
        Sheets("Treking").[H6].Value = "stop"
    End Sub
    
    Private Sub CommandButton2_Click() ' go
        Sheets("Treking").[H6].Value = ""
    End Sub
    

    et pour tes procédures
    Sub Comptage()
    'adaptez le nom de feuille
    If Sheets("Treking").Range("H6").Value = "stop" Then
        Application.OnTime (Now + TimeValue("0:00:" & Interval)), "Arrêt"
    Else
        Worksheets("Treking").Range("h5").FormulaLocal = "='blad1'!c" & x
        'incremente pointeur cellule
        x = x + 1
        'sortie
        If x > 90 Then End
        'attente relance macro
        Application.OnTime Now + TimeValue("0:00:" & Interval), "Go"
    End If
    End Sub
    Sub Go()
        Call Comptage
    End Sub
    
    Public Sub Arrêt()
        Call Comptage
    End Sub
    
    

    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonsoir,

      Tu peux même simplifier ta macro ainsi
      Sub Change_Formule()
      ' Touche de raccourci du clavier: Ctrl+k
      Interval = 15 'modifiable
      x = 1
      Call Comptage
      End Sub
      
      Sub Comptage()
      'adaptez le nom de feuille
      If Sheets("Treking").Range("H6").Value <> "stop" Then
          Worksheets("Treking").Range("h5").FormulaLocal = "='blad1'!c" & x 
          x = x + 1 'incremente pointeur cellule
          If x > 90 Then End    'sortie
      End If
          'attente relance macro
          Application.OnTime Now + TimeValue("0:00:" & Interval), "Comptage"
      End Sub
      0
    2. Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour;
      desole de repondre si tardivemnet.
      j'ai essayer de copier les code, mais un problemme avec les bouton?
      ca ne fonctionne pas, apparament je dois faire une erreur qulque part, en generale j'utilise des forme et j'ajoute une macro dans set forme, par conter dans ce code nous parlons de bouton, pour les bouton est ce que je dois est une macro ou un code progamme.
      merci de votre patience
      0
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour;

      j'utilise des forme et j'ajoute une macro
      Alors en utilisant ta méthode, voilà ce que cela peut donner comme code
      Option Explicit
      Dim Interval As Integer, x As Integer, go As Boolean
      
      Sub Change_Formule()
      ' Touche de raccourci du clavier: Ctrl+k
      Interval = 15 'modifiable
      x = 1: go = True
      Call Comptage
      End Sub
      
      Sub arrêt() ' stop
         go = False
      End Sub
      
      Sub lancer() ' go
          go = True
      End Sub
      Sub Comptage()
      'adaptez le nom de feuille
      If go Then
          Worksheets("Treking").Range("h5").FormulaLocal = "='blad1'!c" & x
          x = x + 1    'incremente pointeur cellule
          If x > 90 Then End    'sortie
      End If
          'attente relance macro
          Application.OnTime Now + TimeValue("0:00:" & Interval), "Comptage"
      End Sub


      Le classeur test : https://www.cjoint.com/c/GKpkThl73Yl
      0
    4. Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour je voudrais vous dire un grand grand merci va fonctionne a merveille
      0
    5. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Merci du retour.
      Si tu stoppes le comptage sans aller jusqu'à 90 tu auras une erreur. Pour sortir proprement il te faudrait une fonction qui arrête le 'ontime'.
      0