Chris57
XLDnaute Occasionnel
Désolé pour le post prédécent, j'ai fais une fausse manip...
Bonjour à tous,
Je cherche à élaborer un moyen de lancer des alarmes à des horaires qui seront différentes chaque jours.
Chaque jour nous recevons au bureau un fichier du type :
etc... (cela sur 24h00)
Il faudrait que si la valeur fluctue (ex : passage de 100 à 150) qu'une alarme sonore retentisse.
J'ai déjà préparé une userform + un son s'alarme intégré au classeur qui fontionne parfaitement.
Le problème est pour l'heure de l'alarme : j'ai tenté avec une horloge de type
qui lorsqu'elle atteind un changement de valeur lance l'alarme. Mais cela consomme trop de ressources.
J'ai pensé à une autre méthode :
définir à l'ouverture du classeur les heures d'alarme
ce qui donne ceci :
je stock ces heures dans des variables :
(soit 48 variables, F étant la colonne des heures d'alarmes)
ensuite je définis des lancement de la macro alarme sonore avec des :
Le principe se tient mais ça fait énormément de variables, en plus de ça il lance des Alarmes n'importe quand et en plus il est impossible de stopper les 'Application.OnTime' !
Même avec :
il me met un message d'erreur comme quoi la méthode Ontime a échoué... (je suppose qu'il est impossible d'annuler un Ontime dont l'heure est déjà passée...)
Si quelqu'un a une idée même totalement différente de la mienne pour que ça fonctionne, je suis preneur
Message édité par: chris57, à: 12/10/2005 03:49
Message édité par: chris57, à: 12/10/2005 03:50
Bonjour à tous,
Je cherche à élaborer un moyen de lancer des alarmes à des horaires qui seront différentes chaque jours.
Chaque jour nous recevons au bureau un fichier du type :
HEURES VALEUR
00h00_____100
00h30_____100 <--- alarme
01h00_____150
01h30_____200
02h00_____200
02h30_____200
03h00_____200
03h30_____200 <--- alarme
04h00_____150
04h30_____100
--/--
24h00_____100
etc... (cela sur 24h00)
Il faudrait que si la valeur fluctue (ex : passage de 100 à 150) qu'une alarme sonore retentisse.
J'ai déjà préparé une userform + un son s'alarme intégré au classeur qui fontionne parfaitement.
Le problème est pour l'heure de l'alarme : j'ai tenté avec une horloge de type
Code:
Application.OnTime Now + TimeValue('00:01:00'), 'Horloge', , True
qui lorsqu'elle atteind un changement de valeur lance l'alarme. Mais cela consomme trop de ressources.
J'ai pensé à une autre méthode :
définir à l'ouverture du classeur les heures d'alarme
Code:
For Each X In Worksheets('Alarme').[C10:C57]
If X.Value <> X.Offset(1, 0).Value Then
X.Offset(0, 3) = X.Offset(0, -1).Value
X.Offset(0, 1) = 'x'
End If
Next X
HEURES VALEUR heures d'alarmes
00h00_____100_______0
00h30_____100_____00h30
01h00_____150_______0
01h30_____200_______0
02h00_____200_______0
02h30_____200 _______0
03h00_____200 _______0
03h30_____200_____03h30
04h00_____150 _______0
04h30_____100 _______0
je stock ces heures dans des variables :
Code:
ALARME1 = [F11].Value
ALARME2 = [F12].Value
ALARME3 = [F13].Value
ALARME4 = [F14].Value
ALARME5 = [F15].Value
--/--
ALARME48 = [F58].Value
ensuite je définis des lancement de la macro alarme sonore avec des :
Code:
Application.OnTime TimeValue(ALARME1), 'ALARME'
Application.OnTime TimeValue(ALARME2), 'ALARME'
Application.OnTime TimeValue(ALARME3), 'ALARME'
Application.OnTime TimeValue(ALARME4), 'ALARME'
--/--
Application.OnTime TimeValue(ALARME48), 'ALARME'
Le principe se tient mais ça fait énormément de variables, en plus de ça il lance des Alarmes n'importe quand et en plus il est impossible de stopper les 'Application.OnTime' !
Même avec :
Code:
Application.OnTime EarliestTime:=TimeValue(ALARME1), Procedure:='ALARME', Schedule:=False
--/--
Application.OnTime EarliestTime:=TimeValue(ALARME48), Procedure:='ALARME', Schedule:=False
il me met un message d'erreur comme quoi la méthode Ontime a échoué... (je suppose qu'il est impossible d'annuler un Ontime dont l'heure est déjà passée...)
Si quelqu'un a une idée même totalement différente de la mienne pour que ça fonctionne, je suis preneur
Message édité par: chris57, à: 12/10/2005 03:49
Message édité par: chris57, à: 12/10/2005 03:50