Sauvegarde de changement variable VBScript
Posté : 14 févr. 2019, 11:13
Bonjour , je suis entrein de créer un fichier Excel qui permet d'enregistrer les action de l'utilisateur sur écran HMI. Pour l'instant c'est un code test avec seulement 2 BP avant de l'adapter sur une machine. Mon projet est fonctionnel et écrit tout les secondes sur le fichier l'état de mes 2 BP. Seulement j'aimerai qu'il écrive sur le fichier excel SEULEMENT quand une des variables CHANGE D'ETAT (et non toutes les secondes car le fichier se remplis vite). C'est pour savoir s'il y a une possibilité de le faire avec les "Archives" si pas , un autre moyen ? Merci
Voici mes 3 scripts ==>
Voici mes 3 scripts ==>
Code : Tout sélectionner
Sub Continue()
Dim EcritureContinue
Dim FolderWay , ObjectWay , FileName , File , FileExist, header , value , currentTime ' Declaration des variables
FolderWay = "C:\Users\agher\Downloads\Henallux Automatique\3ème bloc\STAGE\ExcelExemple" 'Là ou l'on veut enregistrer le fichier Excel sous un nom
Set ObjectWay = CreateObject ("Scripting.FileSystemObject") 'Creation d'un object pour voir si le dossier est créé ou pas
'Si le dossier n'existe pas, on le créer.
If Not ObjectWay.FolderExists(FolderWay) Then
ObjectWay.CreateFolder FolderWay
End If
'FileName = Year(Now()) & "_" & Month(Now()) &"_" & Day(Now()) & "-" & Hour(Time) & "_" & Minute(Time) & "_" & Second(Time) & ".csv"
FileName = "EnregistrementValeur.csv"
Set File = CreateObject ("Scripting.FileSystemObject") ' Creation d'un object pour voir si le fichier est créé ou pas
FileExist = File.FileExists(FolderWay & "\" &FileName) ' On créer une variable qui indique le chemin du fichier
'Si le fichier n'existe pas, on le créer
If FileExist = False Then
'On créer le fichier
File.CreateTextFile(FolderWay & "\" &FileName)
'On créer maintenant les en-têtes du fichier Excel
Set header = File.OpenTextFile(FolderWay & "\" &FileName, 8) ' Le 8 signifie "ouvrir le dossier et écrire à la fin"
header.WriteLine("Temps ; ActionA ; ActionB")
header.Close 'Pas oublier de fermer quand on a fini sinon la suite se fera dans les headers
'On vide l'objet
Set File = Nothing
End If
Do
Call WriteDataToExcel (value, currentTime, File, FolderWay, FileName)
EcritureContinue = SmartTags("BpStopLog") 'J'appel le 1er script
Call Delay
Loop While ( EcritureContinue = False) ' tant que le BPSTOPLOG vaut 0 , on continue d'écrire
End SubCode : Tout sélectionner
Sub Delay()
Dim time1, time2
time1= Now
time2= Now + TimeValue ("0:00:01")
Do Until time1>= time2
time1= Now()
Loop
End SubCode : Tout sélectionner
Sub WriteDataToExcel(ByRef value, ByRef currentTime, ByRef File, ByRef FolderWay, ByRef FileName)
currentTime = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
Set File = CreateObject ("Scripting.FileSystemObject")
Set value = File.OpenTextFile(FolderWay & "\" &FileName, 8)
value.WriteLine ( currentTime & ";" & SmartTags("ActionA") & ";" & SmartTags("ResetActionA")) ' ";" sépare les collonnes dans Excel
value.Close
End Sub