Je cafouille depuis plusieurs jours et je n'ai plus d'idées..
Le pb : un evenement se produit et j'enregistre la seconde du système dans une var initsecond. L'arrivée de cet evenement n'est pas toujours à la même seconde
Dans delta je calcule le nb de seconde pour lancer une macro à l'aide de OnTime, et qui correspond à la minute suivante
par ex, event à la 12ème seconde et je veux lancer la macro mess() 48 scecondes plus tard quand les secondes seront à 00 ( pour formuler autrement, lancer mess() à chaque changement de minute...)
J'ai tout compliqué et les types de variables m'escagassent
Je n'arrive pas à passer une variable dans OnTime
Ci dessous, ma prose
Merci d'avance pour votre aide
Public Sub envoi(
On Error GoTo Macro21_Er
Dim Start As Varian
Dim initsecond, delta As Intege
initsecond = Second(Time
delta = 60 - initsecon
' h = TimeValue("00:00:00"
hd = h + TimeValue("delta"
Start = Now + delta ' TEMPS(0;0;0
Application.OnTime Start, "mess
Macro21_Exit
Exit Su
Macro21_Err
Resume Macro21_Exi
End Su
Public Sub mess(
Worksheets("Feuil1").Range("D1") = "started at " & Tim
'MsgBox ("Coucou !"
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FxM
Bonjour,
Puisque tu cherches à déclencher aux minutes entières, un exemple dont tu peux t'inspirer :
Sub test() a = TimeValue("00:13:30") b = Int((a * 1440) + 1) / 1440 e = TimeValue(CDate(b)) End Sub
a est la représentation de ton temps Pour Excel, 1 est un jour donc 24 * 60 minutes (1440 min) a * 1440 est le nombre de minutes depuis le début de journée. int(a*1440+1) est la minute entière suivante Le reste n'est que de la conversion d'unités.
@+ FxM
twinley wrote:
Bonjour à tous,
Je cafouille depuis plusieurs jours et je n'ai plus d'idées...
Le pb : un evenement se produit et j'enregistre la seconde du système dans une var initsecond. L'arrivée de cet evenement n'est pas toujours à la même seconde. Dans delta je calcule le nb de seconde pour lancer une macro à l'aide de OnTime, et qui correspond à la minute suivante : par ex, event à la 12ème seconde et je veux lancer la macro mess() 48 scecondes plus tard quand les secondes seront à 00 ( pour formuler autrement, lancer mess() à chaque changement de minute...). J'ai tout compliqué et les types de variables m'escagassent. Je n'arrive pas à passer une variable dans OnTime. Ci dessous, ma prose : Merci d'avance pour votre aide.
Public Sub envoi() On Error GoTo Macro21_Err
Dim Start As Variant Dim initsecond, delta As Integer
initsecond = Second(Time) delta = 60 - initsecond ' h = TimeValue("00:00:00") hd = h + TimeValue("delta") Start = Now + delta ' TEMPS(0;0;0) Application.OnTime Start, "mess"
Macro21_Exit:
Exit Sub
Macro21_Err:
Resume Macro21_Exit End Sub
Public Sub mess() Worksheets("Feuil1").Range("D1") = "started at " & Time 'MsgBox ("Coucou !") End Sub
Bonjour,
Puisque tu cherches à déclencher aux minutes entières, un exemple dont
tu peux t'inspirer :
Sub test()
a = TimeValue("00:13:30")
b = Int((a * 1440) + 1) / 1440
e = TimeValue(CDate(b))
End Sub
a est la représentation de ton temps
Pour Excel, 1 est un jour donc 24 * 60 minutes (1440 min)
a * 1440 est le nombre de minutes depuis le début de journée.
int(a*1440+1) est la minute entière suivante
Le reste n'est que de la conversion d'unités.
@+
FxM
twinley wrote:
Bonjour à tous,
Je cafouille depuis plusieurs jours et je n'ai plus d'idées...
Le pb : un evenement se produit et j'enregistre la seconde du système dans une var initsecond. L'arrivée de cet evenement n'est pas toujours à la même seconde.
Dans delta je calcule le nb de seconde pour lancer une macro à l'aide de OnTime, et qui correspond à la minute suivante :
par ex, event à la 12ème seconde et je veux lancer la macro mess() 48 scecondes plus tard quand les secondes seront à 00 ( pour formuler autrement, lancer mess() à chaque changement de minute...).
J'ai tout compliqué et les types de variables m'escagassent.
Je n'arrive pas à passer une variable dans OnTime.
Ci dessous, ma prose :
Merci d'avance pour votre aide.
Public Sub envoi()
On Error GoTo Macro21_Err
Dim Start As Variant
Dim initsecond, delta As Integer
initsecond = Second(Time)
delta = 60 - initsecond
' h = TimeValue("00:00:00")
hd = h + TimeValue("delta")
Start = Now + delta ' TEMPS(0;0;0)
Application.OnTime Start, "mess"
Macro21_Exit:
Exit Sub
Macro21_Err:
Resume Macro21_Exit
End Sub
Public Sub mess()
Worksheets("Feuil1").Range("D1") = "started at " & Time
'MsgBox ("Coucou !")
End Sub
Puisque tu cherches à déclencher aux minutes entières, un exemple dont tu peux t'inspirer :
Sub test() a = TimeValue("00:13:30") b = Int((a * 1440) + 1) / 1440 e = TimeValue(CDate(b)) End Sub
a est la représentation de ton temps Pour Excel, 1 est un jour donc 24 * 60 minutes (1440 min) a * 1440 est le nombre de minutes depuis le début de journée. int(a*1440+1) est la minute entière suivante Le reste n'est que de la conversion d'unités.
@+ FxM
twinley wrote:
Bonjour à tous,
Je cafouille depuis plusieurs jours et je n'ai plus d'idées...
Le pb : un evenement se produit et j'enregistre la seconde du système dans une var initsecond. L'arrivée de cet evenement n'est pas toujours à la même seconde. Dans delta je calcule le nb de seconde pour lancer une macro à l'aide de OnTime, et qui correspond à la minute suivante : par ex, event à la 12ème seconde et je veux lancer la macro mess() 48 scecondes plus tard quand les secondes seront à 00 ( pour formuler autrement, lancer mess() à chaque changement de minute...). J'ai tout compliqué et les types de variables m'escagassent. Je n'arrive pas à passer une variable dans OnTime. Ci dessous, ma prose : Merci d'avance pour votre aide.
Public Sub envoi() On Error GoTo Macro21_Err
Dim Start As Variant Dim initsecond, delta As Integer
initsecond = Second(Time) delta = 60 - initsecond ' h = TimeValue("00:00:00") hd = h + TimeValue("delta") Start = Now + delta ' TEMPS(0;0;0) Application.OnTime Start, "mess"
Macro21_Exit:
Exit Sub
Macro21_Err:
Resume Macro21_Exit End Sub
Public Sub mess() Worksheets("Feuil1").Range("D1") = "started at " & Time 'MsgBox ("Coucou !") End Sub
twinley
merci pour ta réponse, j'étudie et j'adapte et je te dirai ce qu'il en es
à+
merci pour ta réponse, j'étudie et j'adapte et je te dirai ce qu'il en es