Interompre une macro

Résolu/Fermé
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022 - 13 nov. 2017 à 09:38
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022 - 21 nov. 2017 à 08:45
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



A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2017 à 09:53
Bonjour,

Ce qui serait le plus logique c'est que ton code prévoit l'interruption et la reprise : tu ne crois pas ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 13 nov. 2017 à 09:54
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2017 à 10:17
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
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022
13 nov. 2017 à 13:01
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2017 à 19:04
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
14 nov. 2017 à 19:00
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
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
15 nov. 2017 à 09:14
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 nov. 2017 à 11:47
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
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
16 nov. 2017 à 05:49
Bonjour je voudrais vous dire un grand grand merci va fonctionne a merveille
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
16 nov. 2017 à 18:13
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