Есть склад, на котором хранятся товары и отображаются остатки товаров. Есть два магазина, которые могут делать заказы на склад. Нужно, чтобы после того, как склад формирует и передает заказ магазину, остатки на складе уменьшались, а в магазине увеличивались на заказанное количество. Как прописать такую формулу или действие?
Спасибо!
Добрый день!
Помогите прописать формулу.
Есть склад, на котором хранятся товары и отображаются остатки товаров. Есть два магазина, которые могут делать заказы на склад. Нужно, чтобы после того, как склад формирует и передает заказ магазину, остатки на складе уменьшались, а в магазине увеличивались на заказанное количество. Как прописать такую формулу или действие?
Если не заморачиваться с проверками и считать, что на складе ВСЕГДА хватит продукции для выполнения заказов всех магазинов, то можно вообще просто: [vba]
Код
Sub TransferToStore() Dim i&, r&, s0(), s1(), s2() r = Sklad.Cells(Rows.Count, 1).End(xlUp).Row s0 = Sklad.Range("B2:D" & r) s1 = Store1.Range("B2:C" & r) s2 = Store2.Range("B2:C" & r) For i = 1 To UBound(s0) s0(i, 1) = s0(i, 1) - s0(i, 2) - s0(i, 3) s1(i, 1) = s1(i, 1) + s1(i, 2): s1(i, 2) = 0 s2(i, 1) = s2(i, 1) + s2(i, 2): s2(i, 2) = 0 Next Sklad.Range("B2:B" & r) = s0 Store1.Range("B2:C" & r) = s1 Store2.Range("B2:C" & r) = s2 End Sub
[/vba]
Если не заморачиваться с проверками и считать, что на складе ВСЕГДА хватит продукции для выполнения заказов всех магазинов, то можно вообще просто: [vba]
Код
Sub TransferToStore() Dim i&, r&, s0(), s1(), s2() r = Sklad.Cells(Rows.Count, 1).End(xlUp).Row s0 = Sklad.Range("B2:D" & r) s1 = Store1.Range("B2:C" & r) s2 = Store2.Range("B2:C" & r) For i = 1 To UBound(s0) s0(i, 1) = s0(i, 1) - s0(i, 2) - s0(i, 3) s1(i, 1) = s1(i, 1) + s1(i, 2): s1(i, 2) = 0 s2(i, 1) = s2(i, 1) + s2(i, 2): s2(i, 2) = 0 Next Sklad.Range("B2:B" & r) = s0 Store1.Range("B2:C" & r) = s1 Store2.Range("B2:C" & r) = s2 End Sub