Bonjours,
j'ai réalisé un programe en vb6, dans lequel je me sert d'un timer.
Ce dernier ne fonctionne pas correctement sur les intervals que jai
mis. En effet, sur les intervals de 10 sec, et de 1 min, le timer n'est
pas juste. A la place de 10sec, il e fait que 2, et a la place de
1minute, il me fait 1minute 10.
Alors que un timer de 30 sec fonctionne parfaitement.
Merci d'avance pour votre aide !!!
code:
Const Serveur = "Excel|C:\Analyseur_PC\relever_polluants.xls"
Public ligne As Integer
Public colonne As Integer
Public Mess As String
Public temps1 As Integer
Public temps2 As Integer
Public temps3 As Integer
Private Sub Chart1_GotFocus()
Dim xlapp As Excel.Application
Dim classeur As Excel.Workbook, feuille As Excel.Worksheet, Plage As Excel.Range
Set xlapp = New Excel.Application
xlapp.DisplayAlerts = False
Set classeur = xlapp.Workbooks.Open("C:\Analyseur_PC\relever_polluants.xls")
Set feuille = xlapp.ActiveSheet
Set Plage = feuille.Range("A1").CurrentRegion
With flexgrid
.Cols = Plage.Columns.Count
.Rows = Plage.Rows.Count
.Col = 0
.Row = 0
.ColSel = .Cols - 1
.RowSel = .Rows - 1
Plage.Copy
.Clip = Replace(Clipboard.GetText, vbCrLf, vbCr)
End With
Set Plage = Nothing
Set feuille = Nothing
classeur.Close False
Set classeur = Nothing
Set xlapp = Nothing
End Sub
Private Sub cinqminute_Click()
cinqminute.Checked = True
dixsec.Checked = False
trentesec.Checked = False
uneminute.Checked = False
quinzeminute.Checked = False
temps1 = 6
temps2 = 50
End Sub
Private Sub Com1_Click()
Com1.Checked = True
Com2.Checked = False
MSComm1.CommPort = 1
End Sub
Private Sub Com2_Click()
Com2.Checked = True
Com1.Checked = False
MSComm1.CommPort = 2
End Sub
Private Sub Command1_Click()
Select Case Command1.Caption
Case "Marche"
Command1.Caption = "Arrêt"
temps3 = temps2
Timer1.Interval = temps1 * 1000
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 3
MSComm1.PortOpen = True
MSComm1.Output = Chr(65)
Timer1.Enabled = True
Case "Arrêt"
Command1.Caption = "Marche"
Timer1.Enabled = False
MSComm1.Output = Chr(69)
MSComm1.PortOpen = False
End Select
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub dixsec_Click()
dixsec.Checked = True
trentesec.Checked = False
uneminute.Checked = False
cinqminute.Checked = False
quinzeminute.Checked = False
temps1 = 3
temps2 = 50
End Sub
Private Sub Excel_Click()
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\Analyseur_PC\relever_polluants.xls")
'appExcel.visible=True permet de rendre la fenetre visible, car sans sa, elle est ouverte mais pas visible
appExcel.Visible = True
End Sub
Private Sub Exit_Click()
End
End Sub
Private Sub Form_Load()
temps1 = 1
temps2 = 0
Timer1.Enabled = False
MSComm1.InputLen = 3
ligne = 2
Label3.LinkTopic = Serveur
Label3.LinkMode = 2
Label1.LinkTopic = Serveur
Label1.LinkMode = 2
Label4.LinkTopic = Serveur
Label4.LinkMode = 2
Label8.LinkTopic = Serveur
Label8.LinkMode = 2
End Sub
Private Sub Notice_Click()
'permet d'ouvrir la notice d'utilisation
Shell "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe C:\Analyseur_PC\Notice.pdf"
End Sub
Private Sub Print_Click()
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\Analyseur_PC\relever_polluants.xls")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
ActiveWindow.SelectedSheets.PrintOut Copies:=1
wbExcel.Close
Set wbExcel = Nothing
appExcel.Quit
End Sub
Private Sub quinzeminute_Click()
quinzeminute.Checked = True
trentesec.Checked = False
uneminute.Checked = False
cinqminute.Checked = False
dixsec.Checked = False
temps1 = 6
temps2 = 150
End Sub
Private Sub Timer1_Timer()
Dim out(0) As Byte
If temps3 = 0 Then
out(0) = 0
temps3 = temps2
MSComm1.Output = Chr(65)
Else
temps3 = temps3 - 1
End If
End Sub
Private Static Sub MSComm1_OnComm()
Dim résultat() As Byte
Dim So2 As Single
Dim Mire As Single
Dim No2 As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
résultat() = MSComm1.Input
So2 = résultat(1)
Label3.Caption = Format(So2, "Fixed")
Mire = résultat(0)
Label4.Caption = Format(Mire, "Fixed")
Label1.Caption = Time
No2 = résultat(2)
Label8.Caption = Format(No2, "Fixed")
Label3.LinkItem = "L" & ligne & "C2"
Label1.LinkItem = "L" & ligne & "C1"
Label4.LinkItem = "L" & ligne & "C4"
Label8.LinkItem = "L" & ligne & "C3"
Label3.LinkPoke
Label1.LinkPoke
Label4.LinkPoke
Label8.LinkPoke
ligne = ligne + 1
End Select
End Sub
Private Sub trentesec_Click()
trentesec.Checked = True
dixsec.Checked = False
uneminute.Checked = False
cinqminute.Checked = False
quinzeminute.Checked = False
temps1 = 30
temps2 = 0
End Sub
Private Sub uneminute_Click()
uneminute.Checked = True
dixsec.Checked = False
trentesec.Checked = False
cinqminute.Checked = False
quinzeminute.Checked = False
temps1 = 6
temps2 = 10
End Sub
Private Sub Version_Click()
'affiche le message version ...
Mess = "Version 1.0 béta Copyright by Nico"
'la message box qui souvre sappele Analyseur PC
MsgBox Mess, vbOKOnly + vbInformation, "Analyseur PC"
End Sub
Afficher la suite