View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Jim Rech Jim Rech is offline
external usenet poster
 
Posts: 2,718
Default Problem Using 'Mod'

Mod only takes integer values as the second argument.

Actually Mod takes any number but rounds it to the nearest integer. So
Ryan's 1/16 was rounded to zero causing the division by zero.

--
Jim
"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
| 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
|
|