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

Jim,

He wants multiples of 1/16th.

Bernie
MS Excel MVP


"Jim Rech" wrote in message ...
If the number entered/selected is a multiple of 16 this would be true:

Case Val(controls("cboRevealH" & i).Value) Mod 16 = 0

--
Jim
"RyanH" wrote in message
...
| Thanks for the reply Bernie, unfortunately that doesn't really do much for
| me. Is there a function that would do this below?
|
| 16 * Val(controls("cboRevealH" & i)) - Int(16 * Val(controls("cboRevealH"
&
| i))) = 0
|
| Basically multiple the number in the Combobox by 16 which will return the
| total number of 16th's. If the result does not equal a whole number the
| number should be considered invalid. It would be nice to have a neat
| function for this, any ideas?
| --
| Cheers,
| Ryan
|
|
| "Bernie Deitrick" wrote:
|
| 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
|
|
|