![]() |
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. |
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