View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Type Mismatch Error

I'd add a check to see if the value of me.controls(vname & vnum) was numeric
first:

if isnumeric(me.controls(vname & vnum).value) then
Me.Controls(vName & vNum + 1).value = _
(cdbl(Me.Controls(vName & vNum).value) * _
CDbl(C_8)) + CDbl(C_11)
else
'what should happen?
end if



Minitman wrote:

Greetings,

I am getting a:

Run-time error '13':
Type mismatch

In this line of code:

Me.Controls(vName & vNum + 1) = _
(Me.Controls(vName & vNum) * _
CDbl(C_8)) + CDbl(C_11)

In a select case sub that looks like this:
__________________________________________________ ___________
Public Sub CellFormat(vName As Variant, vNum As Variant)

Select Case vName
Case "C_"
Select Case vNum
Case "I_"
Select Case vNum
Case 4, 6, 8, 10, 12, 14

'I tried to put 0's where there were vbNullString's as values, hoping
'that this would cure the problem - It did not.
If Me.Controls(vName & vNum) = _
vbNullString Then Me.Controls _
(vName & vNum) = 0

If Me.Controls(vName & vNum + 1) = _
vbNullString Then Me.Controls _
(vName & vNum + 1) = 0

'These are from a different workbook. I am getting there values ok.
If C_8 = vbNullString Then C_8 = 0
If C_11 = vbNullString Then C_11 = 0

'This is the formula to get a value into the adjacent TextBox and
'the line that debug highlighted.
Me.Controls(vName & vNum + 1) = _
(Me.Controls(vName & vNum) * _
CDbl(C_8)) + CDbl(C_11)

This is where I am changing the value 0 back to vbNullString
If Me.Controls(vName & vNum + 1) = 0 Then _
Me.Controls(vName & vNum + 1) = vbNullString
If Me.Controls(vName & vNum) = 0 Then _
Me.Controls(vName & vNum) = vbNullString
If C_8 = 0 Then C_8 = vbNullString
If C_11 = 0 Then C_11 = vbNullString

__________________________________________________ ____________

Anyone have any ideas as to what went wrong with this code and how to
fix it?

Any help would be appreciated.

-Minitman


--

Dave Peterson