Converting from Inches to Feet Conditionally

G

Guest

Hi, I have a question on how change from inches to feet only if there is a
decimal. It is a lumber count that I am creating and everything is feet with
a whole number, except some lumber is 104 1/4 or 103 3/4 for example. So I
want it to convert to feet ONLY IF I input it as 104.25.

Is that possible? I'm sure it is, but I am at a loss on how to do it.
 
G

Guest

Here is a function that will convert the decimal portion to a fraction that
is accurate within 128th of an inch ...

Public Function fDecToFrac(x) As String
Dim strTmp As String
Dim intFixed As Integer

If Not IsNumeric(x) Then Exit Function

x = Abs(x)
intFixed = Int(x)

If intFixed > 0 Then
strTmp = str(intFixed) & " "
End If

Select Case x - intFixed
Case Is < 0.007813
strTmp = strTmp
Case 0.007813 To 0.023438
strTmp = strTmp & "1/64"
Case 0.023438 To 0.039063
strTmp = strTmp & "1/32"
Case 0.039063 To 0.054688
strTmp = strTmp & "3/64"
Case 0.054688 To 0.070313
strTmp = strTmp & "1/16"
Case 0.070313 To 0.085938
strTmp = strTmp & "5/64"
Case 0.085938 To 0.101563
strTmp = strTmp & "3/32"
Case 0.101563 To 0.117188
strTmp = strTmp & "7/64"
Case 0.117188 To 0.132813
strTmp = strTmp & "1/8"
Case 0.132813 To 0.148438
strTmp = strTmp & "9/64"
Case 0.148438 To 0.164063
strTmp = strTmp & " 5/32"
Case 0.164063 To 0.179688
strTmp = strTmp & "11/64"
Case 0.179688 To 0.195313
strTmp = strTmp & "3/16"
Case 0.195313 To 0.210938
strTmp = strTmp & "13/64"
Case 0.210938 To 0.226563
strTmp = strTmp & "7/32"
Case 0.226563 To 0.242188
strTmp = strTmp & "15/64"
Case 0.242188 To 0.257813
strTmp = strTmp & "1/4"
Case 0.257813 To 0.273438
strTmp = strTmp & "17/64"
Case 0.273438 To 0.289063
strTmp = strTmp & "9/32"
Case 0.289063 To 0.304688
strTmp = strTmp & "19/64"
Case 0.304688 To 0.320313
strTmp = strTmp & "5/16"
Case 0.320313 To 0.335938
strTmp = strTmp & "21/64"
Case 0.335938 To 0.351563
strTmp = strTmp & "11/32"
Case 0.351563 To 0.367188
strTmp = strTmp & "23/64"
Case 0.367188 To 0.382813
strTmp = strTmp & "3/8"
Case 0.382813 To 0.398438
strTmp = strTmp & "25/64"
Case 0.398438 To 0.414063
strTmp = strTmp & "13/32"
Case 0.414063 To 0.429688
strTmp = strTmp & "27/64"
Case 0.429688 To 0.445313
strTmp = strTmp & "7/16"
Case 0.445313 To 0.460938
strTmp = strTmp & "29/64"
Case 0.460938 To 0.476563
strTmp = strTmp & "15/32"
Case 0.476563 To 0.492188
strTmp = strTmp & "31/64"
Case 0.492188 To 0.507813
strTmp = strTmp & "1/2"
Case 0.507813 To 0.523438
strTmp = strTmp & "33/64"
Case 0.523438 To 0.539063
strTmp = strTmp & "17/32"
Case 0.539063 To 0.554688
strTmp = strTmp & "35/64"
Case 0.554688 To 0.570313
strTmp = strTmp & "9/16"
Case 0.570313 To 0.585938
strTmp = strTmp & "37/64"
Case 0.585938 To 0.601563
strTmp = strTmp & "19/32"
Case 0.601563 To 0.617188
strTmp = strTmp & "39/64"
Case 0.617188 To 0.632813
strTmp = strTmp & "5/8"
Case 0.632813 To 0.648438
strTmp = strTmp & "41/64"
Case 0.648438 To 0.664063
strTmp = strTmp & "21/32"
Case 0.664063 To 0.679688
strTmp = strTmp & "43/64"
Case 0.679688 To 0.695313
strTmp = strTmp & "11/16"
Case 0.695313 To 0.710938
strTmp = strTmp & "45/64"
Case 0.710938 To 0.726563
strTmp = strTmp & "23/32"
Case 0.726563 To 0.742188
strTmp = strTmp & "47/64"
Case 0.742188 To 0.757813
strTmp = strTmp & "3/4"
Case 0.757813 To 0.773438
strTmp = strTmp & "49/64"
Case 0.773438 To 0.789063
strTmp = strTmp & "25/32"
Case 0.789063 To 0.804688
strTmp = strTmp & " 51/64"
Case 0.804688 To 0.820313
strTmp = strTmp & "13/16"
Case 0.820313 To 0.835938
strTmp = strTmp & "53/64"
Case 0.835938 To 0.851563
strTmp = strTmp & "27/32"
Case 0.851563 To 0.867188
strTmp = strTmp & "55/64"
Case 0.867188 To 0.882813
strTmp = strTmp & "7/8"
Case 0.882813 To 0.898438
strTmp = strTmp & "57/64"
Case 0.898438 To 0.914063
strTmp = strTmp & "29/32"
Case 0.914063 To 0.929688
strTmp = strTmp & "59/64"
Case 0.929688 To 0.945313
strTmp = strTmp & "15/16"
Case 0.945313 To 0.960938
strTmp = strTmp & "61/64"
Case 0.960938 To 0.976563
strTmp = strTmp & "31/32"
Case 0.976563 To 0.992188
strTmp = strTmp & "63/64"
Case Is > 0.992188
strTmp = str(Int(x) + 1)
End Select

fDecToFrac = strTmp

End Function

R. Hicks
 
G

Guest

That is probably very helpful if someone wanted to convert to a fraction. I
want to change to feet only if I input a decimal (rounded to the nearest
foot, but I know how to do that). If I input 12 or 550 I want it to say 12
or 550. If I put in 104.25 then I want to convert it to say 9.

thanks though...
 
D

dd

Use the instr function to determine if the field contains a decimal point.

if instr("some string/number", ".") > 0 then
convert to feet ....
end if

Hope this helps,
-Duy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top