Basically, when you increase a number by some percentage you're actually multiplying by 1 + the percentage like this:
A * (1 + some%) = B
If A = 100 and the percent to add = 10% (10%=.1) then
100 * (1 + .1) = B
100 * 1.1 = B
B = 110
so to determine A given B and the percent increase of A you would use:
A = B / (1 + .1)
A = 110 / 1.1
A = 100
This is demonstrated in the following code where the base number is increased by multiple percentages, just place 2 command buttons on a form and paste this code.
Code:Option Explicit Dim MyBaseNumber, MyNewNumber Dim PercentArray() Private Sub Form_Load() 'change these values to suit your needs ReDim PercentArray(2) 'holds percent multipliers (as many as needed) MyBaseNumber = 120 PercentArray(0) = 0.1 '10% PercentArray(1) = 0.15 '15% PercentArray(2) = 0.05 '05% End Sub Private Sub Command1_Click() Dim i As Integer Dim MsgTemp As String MyNewNumber = MyBaseNumber 'the following loop creates a new number based on the percent array For i = 0 To UBound(PercentArray) MyNewNumber = MyNewNumber * (1 + PercentArray(i)) MsgTemp = MsgTemp & " + " & PercentArray(i) * 100 & "%" Next MsgBox MyBaseNumber & MsgTemp & " = " & MyNewNumber End Sub Private Sub Command2_Click() Dim i As Integer Dim MsgTemp As String If Len(MyNewNumber) = 0 Then MsgBox "Click Command1 first." Command1.SetFocus Exit Sub End If MyBaseNumber = MyNewNumber 'the following loop recreates the base number For i = UBound(PercentArray) To 0 Step -1 MyBaseNumber = MyBaseNumber / (1 + PercentArray(i)) Next MsgBox "The base number is: " & MyBaseNumber End Sub




Reply With Quote