ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Inputbox Convert Millimeters to Feet and Inches (https://www.excelbanter.com/excel-programming/340891-inputbox-convert-millimeters-feet-inches.html)

RShow

Inputbox Convert Millimeters to Feet and Inches
 
Greetings,
I posted here earlier and had a wonderful response. Thank you Harold. That
code did the trick.
New Scenerio:
How can you convert Millimeters from an input box and show the values
broken out among four textboxes.
The four textboxes are labeled Feet, Inches, Top Fraction, and Bottom
Fraction, respectfully.

1669.598 MM in textbox should convert to 5' 5 1/2 " (I'm pretty sure
that's correct)
Textbox Feet = 5
Textbox Inches = 5
Textbox Top Fraction = 1
Textbox Bottom Fraction = 2

Any help is greatly appreciated.
Thank you for your time.






Nick Hebb

Inputbox Convert Millimeters to Feet and Inches
 
I created a little form with txtMM as the input and txtFT, txtIn,
txtNumerator (aka top fraction), and txtDenominator (aka bottom
fraction) as the outputs. The following is the conversion code (using a
command button - cmdCalc) to drive it:

Private Sub cmdCalc_Click()

Const CONV_FACTOR As Double = 304.8 'mm to ft
Const PROXIMITY As Double = 0.1
Const MAX_ITERATIONS As Integer = 1000

Dim mm As Double
Dim feet As Double
Dim inches As Double
Dim numerator As Double
Dim denominator As Integer
Dim remainder As Double

If Not IsNumeric(Me.txtMM) Then
MsgBox "Error"
Exit Sub
End If

mm = CDbl(Me.txtMM)
feet = mm / CONV_FACTOR
Me.txtFt = Int(feet)

remainder = feet - CInt(feet)
inches = remainder * 12
Me.txtIn = Int(inches)

remainder = inches - Int(inches)
denominator = 1
Do
denominator = denominator + 1
numerator = remainder * denominator
Loop While Abs(numerator - Round(numerator, 0)) PROXIMITY _
And (denominator <= MAX_ITERATIONS)

If denominator = MAX_ITERATIONS Then
MsgBox "Cannot calculate to desired proximity"
Else
Me.txtNumerator = CInt(numerator)
Me.txtDenominator = denominator
End If

End Sub

The PROXIMITY value is how close you want the numerator to be to a
whole number. The smaller the number, the more funky (but more
accurate) results you'll get. The MAX_ITERATIONS is the maximum number
of times you want the loop to run.

I get 5' 5-3/4", which I verified as correct.


----
Nick Hebb
BreezeTree Software
http://www.breezetree.com



All times are GMT +1. The time now is 02:46 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com