salut jrivet
j'ai pris un nouveau projet dans lequel il n'y a qu'une feuille dont le code ne contient que "msgbox hex(1348)" et en effet cela fonctionne !
mais dans mon projet, meme si je prends une nouvelle feuille, l'erreur se produit
voici le code de la seule feuille de mon projet (en fait je communique avec un automate omron CJM1 et je récupère des données grace à des afficheurs omron => sur ma feuille, il y a un control qui permet la communication avec CX-server, 7 afficheurs omron qui sont liés au control de communication, et 7 listBox.) :
Private Sub Form_Load()
Dim tempo As Integer
Dim heure As String
Dim datedoj As String
Dim enr_minut As Integer
Dim n_cycle1 As String
Dim n_cycle2 As String
Dim npas As Integer
Dim npas_prec As Integer
Dim t_cuve As Integer
Dim t_dech As Integer
Dim coeffste As Integer
Dim press As Integer
Dim i As Integer
Dim f As Byte
Comms1.ClosePLC
tempo = Second(Now)
Do Until Second(Now) = tempo + 5
Loop
Form1.Show
tempo = Second(Now)
Do Until Second(Now) = tempo + 5
Loop
Comms1.OpenPLC
tempo = Second(Now)
Do Until Second(Now) = tempo + 5
Loop
f = "0000000000000001"
recomm:
If (Comms1.CIO(117) And f) <> 1 Then
GoTo recomm
Else
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
List6.AddItem heure
List7.AddItem datedoj
boucle_pas:
If Display1.Value = 1234.5 Then
GoTo boucle_pas
Else
npas_prec = Display1.Value
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
List6.AddItem heure
List7.AddItem datedoj
List1.AddItem Display1.Value
List2.AddItem Display2.Value
List3.AddItem Display3.Value
List4.AddItem Display4.Value
List5.AddItem Display5.Value
Do While (Comms1.CIO(117) And 1) = 1
boucle:
Do While Display3.Value <= 120
Do Until Display1.Value <> npas_prec
tps_pas = Comms1.D(16)
Loop
List6.AddItem tps_pas
List7.AddItem ""
List1.AddItem ""
List2.AddItem ""
List4.AddItem ""
List3.AddItem ""
List5.AddItem ""
npas_prec = Display1.Value
Loop
Do While Display3.Value > 121
enr_minute = Minute(Now)
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
List6.AddItem heure
List7.AddItem datedoj
List1.AddItem Display1.Value
List2.AddItem Display2.Value
List3.AddItem Display3.Value
List4.AddItem Display4.Value
List5.AddItem Display5.Value
boucle_minute:
If Minute(Now) <> enr_minute + 1 Then
GoTo boucle_minute
End If
Loop
Loop
End If
End If
heure = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
datedoj = Date
GoTo recomm
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Comms1.ClosePLC
tempo = Second(Now)
Do Until Second(Now) = tempo + 3
Loop
End
End Sub
voila. les temporisations servent à laisser du temps au programme sinon toute l'application bloque.
merci d'avance