• Initiateur de la discussion Initiateur de la discussion Domingo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Domingo

Guest
Bonjour à tous, ma première expérience en script excel semble simple mais je suis un débutant. Je dois faire faire changer l'état d'une cellule de ma page excel de 0 a 1 a tous les seconde. Une fois que j'aurais réussi , je pourrais aller lire cette valeur avec mon automate programmable et savoir quand la communication ne fonctionnera plus. Si je lis un 0 ou un 1 pendant 5 secondes, alarme.

Merci de votre aide!
 
Re : Watchdog

Bonsoir,

Créer un bouton appelant anime.

Et c'est partis pour 3 mn.


Code:
Sub Attente(Seconde As Single)
'Temporisation programmable en fraction de seconde
Dim FinTempo As Single

 If Seconde < 0.01 Then Seconde = 0.01
 FinTempo = Timer + Seconde

Do
  DoEvents
Loop Until Timer > FinTempo

End Sub

Sub anime()
Dim Fin As Single
'Charge la boucle pour 3 mn
Fin = Timer + 180
Do

Attente 1
Range("A1") = IIf(Range("A1") = 0, 1, 0)

Loop Until Timer > Fin
End Sub
[CODE]
 
Re : Watchdog

Salut Domingo et Bienvenu sur XLD, camarchepas🙂, le Forum

Il suffit de mettre la procédure dans le Module ThisWorkbook

Code:
Private Sub Workbook_Open()
Dim Fin As Single
'Charge la boucle pour 3 mn
Fin = Timer + 180
Do

Attente 1
Range("A1") = IIf(Range("A1") = 0, 1, 0)

Loop Until Timer > Fin
End Sub

et dans un Module Standard

Code:
Sub Attente(Seconde As Single)
'Temporisation programmable en fraction de seconde
Dim FinTempo As Single

If Seconde < 0.01 Then Seconde = 0.01
FinTempo = Timer + Seconde

Do
DoEvents
Loop Until Timer > FinTempo

End Sub

Bonne Journée
 

Pièces jointes

Re : Watchdog

Ton fichier fonctionne bien mais dans les macros, il n'y a rien ? Quand je vais dans VB ca copie mais ca efface dans l'autre. Excusez mon ignorance des macros . Es qu'il y aurais un moyen simple de démarrer automatiquement un macros ?

Es que je peux coller ton code dans un macro sans aller dans le VB ?
 
Re : Watchdog

Bonjour

Si ton automate programmable peut lire dans les registres. Je te conseil de passer par un script plutot qu' Excel.

Ci-joint, un script vbs qui modifie dans
HKEY_CURRENT_USER/Software/VB and VBA Program Settings/Domingo/Script
la valeur de la clé "Value" de 0 à 1 et de 1 à 0 à toute les secondes.
Pour stopper le script.
Faire passer la valeur de "Fin" à Vrai

Il est dans un .zip, car les .vbs ne sont pas reconnu par le forum.
 

Pièces jointes

Re : Watchdog

Exact, mon automate peut lire dans excel mais ton fichier ne passe pas, erreur de compilation.

J'aimerais avoir dans la case A1 de mon fichier excel, une valeur qui passe de 0 a 1 a tous les secondes et qui n'arrêtera jamais.

Un watchdog qui démarre tout seul avec la page excel.

Ca pourrais être possible avec un fichier en .XLMS ?

Merci de votre aide ! Après deux jours de travail , ça marche presque.
 
Re : Watchdog

Merci, c'est ça que j'avais de besoin. Je suis aller faire le démarrage de mon application hier et je me suis rendu compte que la comm est si lente entre mon automate et mon logiciel que j'ai besoin d'un watch dog de 10 secondes ON et 10 secondes OFF. J'ai essayer de changer les valeur dans le script mais sans succès. Je dois changer quoi pour passer de 1 a 10 secondes ?

merci!
 
Re : Watchdog

Bonjour, le script de surveillance fonctionne et me permet de vérifier si le fichier Excel est ouvert. Je regarde si le registre case A1 change de 0 a 1 a tous les 30 secondes avec mon automate pour activer un alarme. Par contre , le script arrette de fonctionner et reste a 1 ou 0 . Je ne comprend pas pourquoi mais j'aimerais que le script n'arrette jamais de fonctionner, merci de votre aide.

Sub Attente(Minute As Single)

Dim FinTempo As Single

If Minute < 0.01 Then Minute = 0.01
FinTempo = Timer + Minute

Do
DoEvents
Loop Until Timer > FinTempo

End Sub

Sub anime()
Sheets("Sheet1").Select
Dim Fin As Single
Fin = Timer + 1
Do

Attente 30
Range("A1") = IIf(Range("A1") = 0, 1, 0)

Loop Until Arret
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
378
Réponses
23
Affichages
666
Retour