Lancer alarmes à heures différentes 2

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 :

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
ce qui donne ceci :


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
(soit 48 variables, F étant la colonne des heures d'alarmes)

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
 
D

Dominique

Guest
Bravo pour la présentation de la question.
Lancer plusieurs fois l'événement OnTime doit effectivement donner des résultats inattendus. Un seul Timer possible à la fois d'après ma pratique.
Avant d'aborder la question du bouclage pour initialiser 48 variables, je me pose ces questions :
Le fichier reçu chaque jour serait-il une sorte de planning de lancement de procédures ???
Et que font ces procédures lancées par OnTime ???
à+
 

Chris57

XLDnaute Occasionnel
Je vais essayé d'être clair : il s'agit du 'programme de charge' d'une tranche de production l'électricité. L'unité de la valeur est le MW (Méga-Watt).

Ce programme arrive toujours le jour d'avant sous excel, nous l'imprimons et lorsqu'il est l'heure de modifier la charge de la tranche, à nous de s'en souvenir et de faire le nécessaire.

Nos PC tournent 24h/24 et l'un d'entre eu passe sa vie à afficher une courbe en live. Il pourrai également nous servir d'alarme, en laissant excel ouvert en permanence, pour nous rappeler qu'il est l'heure de monter ou baisser la charge.

Il faudrait que le gars du poste de nuit ouvre le fichier excel du nouveau 'programme de charge' sur ce PC, puis on le laisse ouvert toute la journée. Et aux heures de changement de charge, alarme !


Donc pour répondre à ta question, le fichier du 'programme de charge' est juste un tableau inerte, sans macro, juste pour nous informer.
Les Ontime lancent une alarme si la valeur de la charge a changée.

Message édité par: chris57, à: 12/10/2005 14:57
 

Discussions similaires

Statistiques des forums

Discussions
312 922
Messages
2 093 644
Membres
105 775
dernier inscrit
assen