Страницы: 1
RSS
связаннуе SpinButton + TextBox + формула
 
Добрый день ВСЕМ!  
 
Необходимо устанавливать SpinButton значения в дробном формате в TextBox,  
при этом выбранное значение должно учитываться в формуле, формула в лист  
записывается макросом!    
 
Подскажите, как сие можно осуществить и можно ли вообще?  
Подробности в примере
 
1) Me.SpinButton1.Value всегда целое от  Me.SpinButton1.Min до  Me.SpinButton1.max  
2) Раз вы хотите настроить пределы значений  в SpinButton:  MIN = 1/8 = 6/48     MAX = 2/3 =26/48    
устанавливаем в свойствах SpinButton MIN = 6     MAX = 26  
при этом шаг у нас 1/48, и числовое значение коэффициента определяется как  
Me.SpinButton1.Value / 48  
3) показать число в дробном формате  
WorksheetFunction.Text(Me.SpinButton1.Value / 48, "# ???/???") здесь оставлено три значащих цифры про запас, при шаге 1/48 достаточно двух  
4) вобще говоря значение SpinButton1.Value сохраняется, но если нужно начинать с 1/8 то  
Private Sub UserForm_Initialize()  
Me.SpinButton1.Value = Me.SpinButton1.Min  
Me.TextBox1 = WorksheetFunction.Text(Me.SpinButton1.Value / 48, "# ???/???")  
End Sub  
5) запись числа в textbox в дробном формате и добавление в формулу  
Private Sub SpinButton1_Change()  
Me.TextBox1 = WorksheetFunction.Text(Me.SpinButton1.Value / 48, "# ???/???")  
Range("J2").Formula = "=ROUND(ROUND(($E2*$G2*" & Me.TextBox1.Value & "),0)-H2,0)"  
End Sub  
 
ну вот и все пироги....
 
26/48 = 13/24 = 2/3-1/8 это диапазон изменения, чтоб определить допустимый шаг.  
 
вместо  
устанавливаем в свойствах SpinButton MIN = 6 MAX = 26  
надо  
устанавливаем в свойствах SpinButton MIN = 6 MAX = 32 (тогда от 1/8 до 2/3)
 
Большое спасибо dl за содействие!  
 
Проверил, все хорошо, респект!  
 
Sofi
 
Уважаемый dl и остальные форумчане!  
 
Поковырялся с Вашим вариантом решения моей проблемы и  
возник вопрос по предложенному Вами форматированию, только  
применительно к ComboBox!  
 
Подробности в примере!
 
А чем вам не подходит:  
Me.ComboBox1.List = Array("1 / 2", "1 / 3", "1 / 4", "1 / 5", "1 / 6", "1 / 7", "1 / 8") ??  
 
Все отображается так как надо.
Редко но метко ...
 
что бы получить численное значение дроби используйте функцию: Evaluate(), см. файл.
Редко но метко ...
 
Действительно, все как надо!  
 
У меня почему-то в Combo.List были дроби 1/2 и т.д.  
а в окне Combo  "40548" т.е. ДАТА!  
 
Странно,    
спасибо за участие!
Страницы: 1
Читают тему
Наверх