Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
MSComm locking up Excel
Has anyone ever experienced locking issues when they use
the MSCOMM control? Mine does it quite often and I do not know why. Here is the code I am using: Sub GetInput() ActiveCell.Value = GetWeight() End Sub Public Function GetWeight() As Double Dim sInput As String On Error GoTo ErrorHandler If frmComm.comExcel.InBufferCount 0 Then frmComm.comExcel.InBufferCount = 0 End If ActiveCell.Value = "Waiting for Stable..." frmComm.comExcel.CommPort = 1 frmComm.comExcel.Settings = "9600,N,7,2" frmComm.comExcel.PortOpen = True frmComm.comExcel.Output = "1S" & Chr$(13) 'Print on stable frmComm.comExcel.Output = "P" & Chr$(13) 'Display data Do DoEvents Loop Until frmComm.comExcel.InBufferCount = 18 sInput = frmComm.comExcel.Input Dim x As Integer Dim intLength As Integer Dim strTemp As String Dim strTemp1 As String intLength = Len(sInput) For x = 1 To intLength strTemp = Mid(sInput, x, 1) Select Case strTemp Case 0 To 9 strTemp1 = strTemp1 + strTemp Case "." strTemp1 = strTemp1 + strTemp End Select Next x GetWeight = strTemp1 frmComm.comExcel.PortOpen = False 'GetWeight = Val(Mid$(sInput, 1)) Exit Function ErrorHandler: If Err.Number = 8005 Then Exit Function Else MsgBox Err.Description End If End Function |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
MSComm locking up Excel
Do
DoEvents Loop Until frmComm.comExcel.InBufferCount = 18 would loop forever if InBufferCount doesn't achieve 18 perhaps you also want to capture the time when you enter the loop and have it jump out or end when a certain amount of time has elapsed. -- Regards, Tom Ogilvy "Eric" wrote in message ... Has anyone ever experienced locking issues when they use the MSCOMM control? Mine does it quite often and I do not know why. Here is the code I am using: Sub GetInput() ActiveCell.Value = GetWeight() End Sub Public Function GetWeight() As Double Dim sInput As String On Error GoTo ErrorHandler If frmComm.comExcel.InBufferCount 0 Then frmComm.comExcel.InBufferCount = 0 End If ActiveCell.Value = "Waiting for Stable..." frmComm.comExcel.CommPort = 1 frmComm.comExcel.Settings = "9600,N,7,2" frmComm.comExcel.PortOpen = True frmComm.comExcel.Output = "1S" & Chr$(13) 'Print on stable frmComm.comExcel.Output = "P" & Chr$(13) 'Display data Do DoEvents Loop Until frmComm.comExcel.InBufferCount = 18 sInput = frmComm.comExcel.Input Dim x As Integer Dim intLength As Integer Dim strTemp As String Dim strTemp1 As String intLength = Len(sInput) For x = 1 To intLength strTemp = Mid(sInput, x, 1) Select Case strTemp Case 0 To 9 strTemp1 = strTemp1 + strTemp Case "." strTemp1 = strTemp1 + strTemp End Select Next x GetWeight = strTemp1 frmComm.comExcel.PortOpen = False 'GetWeight = Val(Mid$(sInput, 1)) Exit Function ErrorHandler: If Err.Number = 8005 Then Exit Function Else MsgBox Err.Description End If End Function |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
row locking, instead of file locking? | Excel Discussion (Misc queries) | |||
locking formula in cells in without locking whole sheet | Excel Discussion (Misc queries) | |||
Unloading userform in MSComm event | Excel Programming | |||
MSCOMM | Excel Programming | |||
Loading MSComm.vbx into Excel VB | Excel Programming |