![]() |
How to display =x/y result in a user form
I have tried to display the result of a percentage calculation in a text box
built into a custom user form. In the properties section for the text box I use the ControlSource property to link the text box to the cell in my spreadsheet that contains the calculation result I want displayed. I use the same property to display both x and y in 2 other text boxes on the user form and have no problems with that at all. Unfortunately I find that the calculation display goes wrong. I don't get any error messages and my macro doesn't trip over but for some reason the calculation formula disappears on the sheet the userform is linked to. After a few times of running my macro (not always the same number), I notice the calculation result shown in the user form has stopped changing and when I check in the source sheet I find that the calculation formula is no longer in the cell, it has been replaced by a number (not a random number but the number calculated the last time the formula worked properly). I have stepped through my code one by one and the cell the calculation is in is not referred to anywhere else in the code, and nowhere else in any cells in the workbook either. The only item that uses that cell reference is the ControlSource I use for the user form. Can anyone suggest why this is happening? Maybe the ControlSource property is not suitable for displaying calculation results in userforms, if so, can anyone suggest a more appropriate way to do it?? |
How to display =x/y result in a user form
ControlSource updates in both directions. You can see this if you type some
text in your textbox. So in effect the textbox writes text back to the cell when updated, replacing the formula with a value. Although you could get around this with convoluted means, I would remove ControlSource and update when your calc is done. ' do calc stuff Me.TextBox1.Text = ActiveSheet.Range("A1").Value However I think I would use a Label, perhaps white with a border to look like a textbox Me.Label1.Caption = ActiveSheet.Range("A1") Regards, Peter T "AndyRoo" wrote in message ... I have tried to display the result of a percentage calculation in a text box built into a custom user form. In the properties section for the text box I use the ControlSource property to link the text box to the cell in my spreadsheet that contains the calculation result I want displayed. I use the same property to display both x and y in 2 other text boxes on the user form and have no problems with that at all. Unfortunately I find that the calculation display goes wrong. I don't get any error messages and my macro doesn't trip over but for some reason the calculation formula disappears on the sheet the userform is linked to. After a few times of running my macro (not always the same number), I notice the calculation result shown in the user form has stopped changing and when I check in the source sheet I find that the calculation formula is no longer in the cell, it has been replaced by a number (not a random number but the number calculated the last time the formula worked properly). I have stepped through my code one by one and the cell the calculation is in is not referred to anywhere else in the code, and nowhere else in any cells in the workbook either. The only item that uses that cell reference is the ControlSource I use for the user form. Can anyone suggest why this is happening? Maybe the ControlSource property is not suitable for displaying calculation results in userforms, if so, can anyone suggest a more appropriate way to do it?? |
How to display =x/y result in a user form
Peter,
Thanks very much, I have used the label approach and it solves the problem. Now I know why John Walkenbach said be careful with ControlSource in the 'VBA for Dummies' book I read!! Regards Andrew "Peter T" wrote: ControlSource updates in both directions. You can see this if you type some text in your textbox. So in effect the textbox writes text back to the cell when updated, replacing the formula with a value. Although you could get around this with convoluted means, I would remove ControlSource and update when your calc is done. ' do calc stuff Me.TextBox1.Text = ActiveSheet.Range("A1").Value However I think I would use a Label, perhaps white with a border to look like a textbox Me.Label1.Caption = ActiveSheet.Range("A1") Regards, Peter T "AndyRoo" wrote in message ... I have tried to display the result of a percentage calculation in a text box built into a custom user form. In the properties section for the text box I use the ControlSource property to link the text box to the cell in my spreadsheet that contains the calculation result I want displayed. I use the same property to display both x and y in 2 other text boxes on the user form and have no problems with that at all. Unfortunately I find that the calculation display goes wrong. I don't get any error messages and my macro doesn't trip over but for some reason the calculation formula disappears on the sheet the userform is linked to. After a few times of running my macro (not always the same number), I notice the calculation result shown in the user form has stopped changing and when I check in the source sheet I find that the calculation formula is no longer in the cell, it has been replaced by a number (not a random number but the number calculated the last time the formula worked properly). I have stepped through my code one by one and the cell the calculation is in is not referred to anywhere else in the code, and nowhere else in any cells in the workbook either. The only item that uses that cell reference is the ControlSource I use for the user form. Can anyone suggest why this is happening? Maybe the ControlSource property is not suitable for displaying calculation results in userforms, if so, can anyone suggest a more appropriate way to do it?? |
All times are GMT +1. The time now is 11:40 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com