I have a table which I insert rows to with this code:
Sub Invoice_InsertProduct()
If Sheet1.Range("Z6").Value = "" Then
MsgBox "Selecciona producto"
Sheet1.Range("Z6").Select
Else
Dim ttCotizacion As ListObject
Set ttCotizacion = Sheet1.ListObjects("tCotizacion")
Dim FilaTabla As ListRow
If ttCotizacion.ListRows.Count = 1 And Sheet1.Range("Z29").Value = "" Then
Set FilaTabla = ttCotizacion.ListRows(1)
FilaTabla.Range.Cells(1).Value = Sheet1.Range("X6").Value
FilaTabla.Range.Cells(2).Value = Sheet1.Range("Y6").Value
FilaTabla.Range.Cells(3).Value = Sheet1.Range("Z6").Value
FilaTabla.Range.Cells(5).Value = Sheet1.Range("AF6").Value
FilaTabla.Range.Cells(6).Value = Sheet1.Range("AG6").Value
Else
Set FilaTabla = ttCotizacion.ListRows.Add
FilaTabla.Range.Cells(1).Value = Sheet1.Range("X6").Value
FilaTabla.Range.Cells(2).Value = Sheet1.Range("Y6").Value
FilaTabla.Range.Cells(3).Value = Sheet1.Range("Z6").Value
FilaTabla.Range.Cells(5).Value = Sheet1.Range("AF6").Value
FilaTabla.Range.Cells(6).Value = Sheet1.Range("AG6").Value
End If
Sheet1.Range("X6").Value = ""
Sheet1.Range("Z6").Value = ""
Sheet1.Range("B4").Select
End If
End Sub
Now what I want to do is after all rows are added to Table("tCotizacion"), user can use a button with a new Sub Prorate_UnitPrice() that will prorate proportionally a number named "nCostLogTot" (Y9) through all values that were copied to: FilaTabla.Range.Cells(6).Value = Sheet1.Range("AG6").Value 'Unit Price
The formula which gives the expected value would be:
'New Unit Price =IF(ISNUMBER("nCostLogT"),((tCotizacion[ProductAmount]/nTotalBalance)*nCostLogT)/tCotizacion[ProductQuantity],0) + FilaTabla.Range.Cells(6).Value = Sheet1.Range("AG6").Value
But necessary to go through all rows in Table (tCotizacion) to last row and replace previous value. Example would be:
nCostLogT= $600
ProductQuantity / Unit Price/ Product Amount
-
100 / $20 / $ 2000 -
200 / $30 / $ 6000 nTotal Balance= $8000
Prorate Delivery Cost:
- ((($2000/$8000)*600)/100)+20= $21.5 New Unit Price
- ((($6000/$8000)*600)/200)+30= $32.25 New Unit Price
Expected table
ProductQuantity / Unit Price/ Product Amount
- 100 / $21.5 / $ 2150
- 200 / $32.25 / $ 6450 nTotal Balance= $8600
The table has 7 columns… header name are:
Column 1 = ProductQuantity
Column 2 = Unit
Column 3 = Product
Column 4 = SKU
Column 5 = DeliveryDay
Column 6 = UnitPrice
Column 7 = ProductAmount
Hope my explanation is clear enough for all.
TIA!!
Microsoft documentation: