ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Looping while msgbox is active (https://www.excelbanter.com/excel-programming/384455-looping-while-msgbox-active.html)

gtslabs

Looping while msgbox is active
 
I have some code that uses a form to start acquiring data from a
serial port using using netcomm1.ocx which is similar to mscomm1.ocx.

It is putting the live data into an excel cell. So essentiall I have a
meter in a cell reading the output from a data aquistion system.

I have it being called from a form becuase that is how I added the
activex netcomm1.ocx.
I really dont want to start from a form and would like to have command
buttons on the sheet.
How can I do that?

My second question is that I want to stream this data live to a cell
and have it updated at a certain frequency. Using the form code to
start this process I need a way to have a user stop the live stream.
I wanted a msgbox to be hit to stop the data. So I tried to code
below a loop that would keep updatind the cells with live data while
the ok button was not depressed.
It did not work. Any idea on what I need to fix here?



Response = 0
Do While Response < 1

Response = MsgBox("Click Yes to Stop the live data stream",
vbOKOnly + vbDefaultButton1, "Stop Live Data")


Buffer$ = ""
NETComm1.Output = "CALL 5" & Chr(13) ' retrieve reading
from Serial Device
Buffer$ = Buffer$ & NETComm1.InputData
Cells(6, 1) = Application.Clean(Buffer$)
TimedDelay (0.1)

Buffer$ = ""
NETComm1.Output = "CALL 6" & Chr(13) ' retrieve reading
from Serial Device
Buffer$ = Buffer$ & NETComm1.InputData
Cells(6, 2) = Application.Clean(Buffer$)
TimedDelay (0.1)

Loop

Thanks


Vergel Adriano

Looping while msgbox is active
 
Look for the Forms toolbox. There's a button control there that you can drag
into the worksheet and assign a macro to it.

As for looping while a message box is displayed, you can consider using a
user form that is displayed with the Modal parameter set to False. When a
message box is displayed, the control is not returned to VBA until the
message box is dismissed. Another idea is to put your Start/Stop button
directly in the spreadsheet.



"gtslabs" wrote:

I have some code that uses a form to start acquiring data from a
serial port using using netcomm1.ocx which is similar to mscomm1.ocx.

It is putting the live data into an excel cell. So essentiall I have a
meter in a cell reading the output from a data aquistion system.

I have it being called from a form becuase that is how I added the
activex netcomm1.ocx.
I really dont want to start from a form and would like to have command
buttons on the sheet.
How can I do that?

My second question is that I want to stream this data live to a cell
and have it updated at a certain frequency. Using the form code to
start this process I need a way to have a user stop the live stream.
I wanted a msgbox to be hit to stop the data. So I tried to code
below a loop that would keep updatind the cells with live data while
the ok button was not depressed.
It did not work. Any idea on what I need to fix here?



Response = 0
Do While Response < 1

Response = MsgBox("Click Yes to Stop the live data stream",
vbOKOnly + vbDefaultButton1, "Stop Live Data")


Buffer$ = ""
NETComm1.Output = "CALL 5" & Chr(13) ' retrieve reading
from Serial Device
Buffer$ = Buffer$ & NETComm1.InputData
Cells(6, 1) = Application.Clean(Buffer$)
TimedDelay (0.1)

Buffer$ = ""
NETComm1.Output = "CALL 6" & Chr(13) ' retrieve reading
from Serial Device
Buffer$ = Buffer$ & NETComm1.InputData
Cells(6, 2) = Application.Clean(Buffer$)
TimedDelay (0.1)

Loop

Thanks



Mark Ivey

Looping while msgbox is active
 
You may consider embedding two command buttons directly on the sheet...

I would use one to invoke an OnTime event and set it at a specified time
interval to replicate your streaming input data. In other words, have the
OnTime procedure run your data streaming macro at specified time intervals.

Then I would use another command button to disable the OnTime event that was
started with the first command button.



"gtslabs" wrote in message
oups.com...
I have some code that uses a form to start acquiring data from a
serial port using using netcomm1.ocx which is similar to mscomm1.ocx.

It is putting the live data into an excel cell. So essentiall I have a
meter in a cell reading the output from a data aquistion system.

I have it being called from a form becuase that is how I added the
activex netcomm1.ocx.
I really dont want to start from a form and would like to have command
buttons on the sheet.
How can I do that?

My second question is that I want to stream this data live to a cell
and have it updated at a certain frequency. Using the form code to
start this process I need a way to have a user stop the live stream.
I wanted a msgbox to be hit to stop the data. So I tried to code
below a loop that would keep updatind the cells with live data while
the ok button was not depressed.
It did not work. Any idea on what I need to fix here?



Response = 0
Do While Response < 1

Response = MsgBox("Click Yes to Stop the live data stream",
vbOKOnly + vbDefaultButton1, "Stop Live Data")


Buffer$ = ""
NETComm1.Output = "CALL 5" & Chr(13) ' retrieve reading
from Serial Device
Buffer$ = Buffer$ & NETComm1.InputData
Cells(6, 1) = Application.Clean(Buffer$)
TimedDelay (0.1)

Buffer$ = ""
NETComm1.Output = "CALL 6" & Chr(13) ' retrieve reading
from Serial Device
Buffer$ = Buffer$ & NETComm1.InputData
Cells(6, 2) = Application.Clean(Buffer$)
TimedDelay (0.1)

Loop

Thanks





All times are GMT +1. The time now is 03:29 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com