View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bernie Deitrick Bernie Deitrick is offline
external usenet poster
 
Posts: 5,441
Default Problem Using 'Mod'

Ryan,

Mod only takes integer values as the second argument. Try it this way

Val(Controls("cboRevealH" & i).Value) * 16 Mod 1 < 0:
etc.

HTH,
Bernie
MS Excel MVP


"RyanH" wrote in message
...
I am getting an error: Division By Zero, indicated below. I don' t know why
this is happening. Val(controls("cboRevealH" & i).Value) = 5 in the
immediate window. The goal I am trying to achieve is making sure the
combobox is a multiple of a 16th of an inch.

Private Sub cmbApply_Click()

Dim i As Long
Dim Dimension As String

' ensure valid data is entered into userform
For i = 1 To 6

' if anything is entered in Reveal #i, then test if it is valid
If Not controls("cboRevealH" & i).Value = "" Or _
Not controls("tbxRevealW" & i).Value = "" Or _
Not controls("tbxRevealD" & i).Value = "" Then

' test if reveal data is rounded to nearest 1/16th and not empty
Select Case True
ERROR Case Val(controls("cboRevealH" & i).Value) Mod 1 / 16 < 0:
Dimension = "Height"
Case Val(controls("tbxRevealW" & i).Value) Mod 1 / 16 < 0:
Dimension = "Width"
Case Val(controls("tbxRevealD" & i).Value) Mod 1 / 16 < 0:
Dimension = "Depth"
End Select

' show message if a invalid height, width, or depth is entered
If CBool(Dimension) Then
strPrompt = "Please enter a valid " & Dimension & " for
Reveal " & i
strPrompt = strPrompt & ". Round to the nearest 1/16th of
an inch."
intButtons = vbCritical
strTitle = "Problem"
MsgBox strPrompt, intButtons, strTitle
Exit Sub
End If
End If
Next i

End Sub
--
Cheers,
Ryan