Bonjour à vous,
Seconde question en peu de temps.....mais je suis dans la brouille......
Avec une commande du genre:
Sub Attente
Range ("A1").Select
Application.OnTime Now + TimeValue("00:00:10"), AutreMacro
End Sub
Je désire laisser à un éventuel utilisateur de la feuille de calcul un
délai
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
J'aimerais mettre la main sur une ligne de commande qui déclenche une
macro
adevant que le délai de 10 secondes se passe sans que rien ne soit saisi
dans
la feuille de calcul mais qui bat en retraite si l'utilisateur saisi une
donnée avavnt la fin du décompte. Il faut pour cela que je puisse garder
la
possibilité d'opérer dans ma feuille pendant le décompte.
J'espère être suffisament précis pour être compris.
Merci !
Bonjour à vous,
Seconde question en peu de temps.....mais je suis dans la brouille......
Avec une commande du genre:
Sub Attente
Range ("A1").Select
Application.OnTime Now + TimeValue("00:00:10"), AutreMacro
End Sub
Je désire laisser à un éventuel utilisateur de la feuille de calcul un
délai
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
J'aimerais mettre la main sur une ligne de commande qui déclenche une
macro
adevant que le délai de 10 secondes se passe sans que rien ne soit saisi
dans
la feuille de calcul mais qui bat en retraite si l'utilisateur saisi une
donnée avavnt la fin du décompte. Il faut pour cela que je puisse garder
la
possibilité d'opérer dans ma feuille pendant le décompte.
J'espère être suffisament précis pour être compris.
Merci !
Bonjour à vous,
Seconde question en peu de temps.....mais je suis dans la brouille......
Avec une commande du genre:
Sub Attente
Range ("A1").Select
Application.OnTime Now + TimeValue("00:00:10"), AutreMacro
End Sub
Je désire laisser à un éventuel utilisateur de la feuille de calcul un
délai
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
J'aimerais mettre la main sur une ligne de commande qui déclenche une
macro
adevant que le délai de 10 secondes se passe sans que rien ne soit saisi
dans
la feuille de calcul mais qui bat en retraite si l'utilisateur saisi une
donnée avavnt la fin du décompte. Il faut pour cela que je puisse garder
la
possibilité d'opérer dans ma feuille pendant le décompte.
J'espère être suffisament précis pour être compris.
Merci !
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées ?
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées ?
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées ?
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées
?
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées
?
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées
?
Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" wrote in
message news:
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateursaisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuterimmédiatement la macro sans attendre que les 10 secondes soient écoulées
?
Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> wrote in
message news:E2E261EF-094A-47A2-BBDA-34D45ED9114F@microsoft.com...
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......
de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuter
immédiatement la macro sans attendre que les 10 secondes soient écoulées
?
Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" wrote in
message news:
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateursaisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuterimmédiatement la macro sans attendre que les 10 secondes soient écoulées
?
Bonsoir docm,
Ta procédure me semble longue & complexe.
Je prends le temps de bien la comprendre avant de l'utiliser.
Je ne voulais cependant pas attendre pour te remercier de tes bons
conseils.
Je reviendrai clore cette ficelle pour confirmer le bon fonctionnement.
Merci !Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter
la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On
Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant
de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" wrote in
message news:
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais
m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateursaisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuterimmédiatement la macro sans attendre que les 10 secondes soient
écoulées
?
Bonsoir docm,
Ta procédure me semble longue & complexe.
Je prends le temps de bien la comprendre avant de l'utiliser.
Je ne voulais cependant pas attendre pour te remercier de tes bons
conseils.
Je reviendrai clore cette ficelle pour confirmer le bon fonctionnement.
Merci !
Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter
la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On
Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant
de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> wrote in
message news:E2E261EF-094A-47A2-BBDA-34D45ED9114F@microsoft.com...
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......
de 10 secondes avant de passer à une nouvelle opération. Mais
m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuter
immédiatement la macro sans attendre que les 10 secondes soient
écoulées
?
Bonsoir docm,
Ta procédure me semble longue & complexe.
Je prends le temps de bien la comprendre avant de l'utiliser.
Je ne voulais cependant pas attendre pour te remercier de tes bons
conseils.
Je reviendrai clore cette ficelle pour confirmer le bon fonctionnement.
Merci !Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter
la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On
Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant
de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" wrote in
message news:
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais
m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateursaisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuterimmédiatement la macro sans attendre que les 10 secondes soient
écoulées
?
Je n'ai peut-être pas bien compris ta demande. Désires-tu que ta macro
s'exécute une seule fois ou bien qu'elle s'exécute toutes les 10 secondes
indéfiniment?
"Stéphan DuQuébec" wrote in
message news:Bonsoir docm,
Ta procédure me semble longue & complexe.
Je prends le temps de bien la comprendre avant de l'utiliser.
Je ne voulais cependant pas attendre pour te remercier de tes bons
conseils.
Je reviendrai clore cette ficelle pour confirmer le bon fonctionnement.
Merci !Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter
lamacro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On
TimebEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant
dequitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" wrote in
message news:
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais
m'est-ilpossible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateursaisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuterimmédiatement la macro sans attendre que les 10 secondes soient
écoulées?
Je n'ai peut-être pas bien compris ta demande. Désires-tu que ta macro
s'exécute une seule fois ou bien qu'elle s'exécute toutes les 10 secondes
indéfiniment?
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> wrote in
message news:C21BE853-BAB0-4A6D-B912-701D5A74CF32@microsoft.com...
Bonsoir docm,
Ta procédure me semble longue & complexe.
Je prends le temps de bien la comprendre avant de l'utiliser.
Je ne voulais cependant pas attendre pour te remercier de tes bons
conseils.
Je reviendrai clore cette ficelle pour confirmer le bon fonctionnement.
Merci !
Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter
la
macro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On
Time
bEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant
de
quitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> wrote in
message news:E2E261EF-094A-47A2-BBDA-34D45ED9114F@microsoft.com...
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......
de 10 secondes avant de passer à une nouvelle opération. Mais
m'est-il
possible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateur
saisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuter
immédiatement la macro sans attendre que les 10 secondes soient
écoulées
?
Je n'ai peut-être pas bien compris ta demande. Désires-tu que ta macro
s'exécute une seule fois ou bien qu'elle s'exécute toutes les 10 secondes
indéfiniment?
"Stéphan DuQuébec" wrote in
message news:Bonsoir docm,
Ta procédure me semble longue & complexe.
Je prends le temps de bien la comprendre avant de l'utiliser.
Je ne voulais cependant pas attendre pour te remercier de tes bons
conseils.
Je reviendrai clore cette ficelle pour confirmer le bon fonctionnement.
Merci !Re-bonjour Stephan
Voici le code qu'il faut.
'----------------------
'Code à mettre dans Module1
Global bEnCours As Boolean
Global HeureProchainAppel
Sub EvenementOnTime()
If bEnCours = False Then
'Annuler le paramétrage du OnTime programmé précédemment.
On Error Resume Next
Application.OnTime EarliestTime:=HeureProchainAppel, _
Procedure:="EvenementOnTime", Schedule:úlse
Exit Sub
End If
Call AutreMacro
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
Sub ProgrammerLeProchainEvenementOnTime()
'Prochain OnTime
HeureProchainAppel = Now + TimeValue("00:00:10")
Application.OnTime HeureProchainAppel, "EvenementOnTime", False
bEnCours = True
End Sub
Sub AutreMacro()
'ton code
End Sub
'----------------------
'Code à mettre dans Feuil1
Sub Attente()
Range("A1").Select
Call ProgrammerLeProchainEvenementOnTime
End Sub
'----------------------
'Code à mettre dans Feuil1 pour annuler l'événement On Time et exécuter
lamacro immédiatement
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$1" Then
If bEnCours = True Then
'annuler l'événement On Time
bEnCours = False
EvenementOnTime
'Exécuter la macro immédiatement et créer un nouvel événement On
TimebEnCours = True
EvenementOnTime
End If
End Sub
'-------------------
'Code à mettre dans ThisWorkBook pour annuler l'événement On Time avant
dequitter
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bEnCours = True Then
bEnCours = False
EvenementOnTime
End If
End Sub
'--------------------------
"Stéphan DuQuébec" wrote in
message news:
C'est très exactement ce que je voulais dire docm.
Bypasser.....anglicisme typiquement québécois......de 10 secondes avant de passer à une nouvelle opération. Mais
m'est-ilpossible de "bypasser" l'attente de 10 secondes advenant que
l'utilisateursaisisse une donnée disons en C1 avant la fin du délai.
Par "bypasser" l'attente de 10 secondes, veux-tu dire que tu veux
exécuterimmédiatement la macro sans attendre que les 10 secondes soient
écoulées?