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

I'm not clear about what actually appears in the combo box so my post was
just in case it was whole numbers (representing 16ths). So 16, 32, 48 would
be valid. If I'm wrong, "never mind" <g.

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