Ik heb een macro geschreven in VBA Exel.
De macro wordt gestart d.m.v. een button, en gestopt d.m.v. een tweede button.
In de macro zit een loop waarin er 'geluisterd' wordt naar de COM-poort.
Alles werkt perfect zolang ik niet op de stop-knop druk. De macro achter de stop-knop wordt blijkbaar pas geactiveerd als de macro uit zijn loop komt. ( d.w.z. dat wanneer ik op de stop-knop druk, er éérst nog één waarde moet doorgestuurd worden via de COM-poort, en deze nog verwerkt wordt, alvorens de macro stopt )
Bestaat er een mogelijkheid om de loop te onderbreken, onmiddelijk op het ogenblik dat ik op de stopknop druk? Ik heb geprobeerd met de stopknop.value te checken ( zie onder ), maar dit lukt niet.
Alvast Dank
Private Sub startknop_Click() ' mijn startknop
stopped = False
Do While Not stopped
Call uitlezen
Loop
End Sub
Private Sub Stopknop_Click() ' mijn stopknop
stopped = True
End Sub
Sub uitlezen()
Dim zoek As String
MSComm1.InBufferCount = 0
MSComm1.CommPort = 1
zoek = Chr(32) ' 32 = spatie
MSComm1.PortOpen = True
'We stellen een loop in tot de binnenkomende data een bepaald teken bedraagt ( in ons geval is dit de waarde die staat in de variabele "zoek"
Do While
MSComm1.Input <> zoek And Stopknop.Value = True
Loop
MSComm1.InputLen = 6
Label1.Caption = MSComm1.Input
ActiveCell.Value = CSng(Label1.Caption)
End Sub
De macro wordt gestart d.m.v. een button, en gestopt d.m.v. een tweede button.
In de macro zit een loop waarin er 'geluisterd' wordt naar de COM-poort.
Alles werkt perfect zolang ik niet op de stop-knop druk. De macro achter de stop-knop wordt blijkbaar pas geactiveerd als de macro uit zijn loop komt. ( d.w.z. dat wanneer ik op de stop-knop druk, er éérst nog één waarde moet doorgestuurd worden via de COM-poort, en deze nog verwerkt wordt, alvorens de macro stopt )
Bestaat er een mogelijkheid om de loop te onderbreken, onmiddelijk op het ogenblik dat ik op de stopknop druk? Ik heb geprobeerd met de stopknop.value te checken ( zie onder ), maar dit lukt niet.
Alvast Dank
Private Sub startknop_Click() ' mijn startknop
stopped = False
Do While Not stopped
Call uitlezen
Loop
End Sub
Private Sub Stopknop_Click() ' mijn stopknop
stopped = True
End Sub
Sub uitlezen()
Dim zoek As String
MSComm1.InBufferCount = 0
MSComm1.CommPort = 1
zoek = Chr(32) ' 32 = spatie
MSComm1.PortOpen = True
'We stellen een loop in tot de binnenkomende data een bepaald teken bedraagt ( in ons geval is dit de waarde die staat in de variabele "zoek"
Do While
MSComm1.Input <> zoek And Stopknop.Value = True
Loop
MSComm1.InputLen = 6
Label1.Caption = MSComm1.Input
ActiveCell.Value = CSng(Label1.Caption)
End Sub