Итак, если я правильно понял, у вас есть главный рабочий лист с именем Production
, рабочий лист, который служит шаблоном для счетов-фактур, с именем Invoice
и два других листа с именами Recipes
и Nav
.
Пока я предполагаю, что у вас больше нет рабочих листов.
Каждый раз, когда вы создаете нового клиента, создается новый рабочий лист на основе шаблона Invoice
. Вам нужен какой-то код, который вычислит сумму всех отдельных заказов, который затем должен быть заполнен в листе Production
.
Мое предложение будет выглядеть так:
Sub updateTotalOrders()
Dim sht As Worksheet
Dim sumOfOrders As Long
sumOfOrders = 0
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "Production" And sht.Name <> "Invoice" And sht.Name <> "Nav" Then 'add here any other sheets that should be excluded from the sum
sumOfOrders = sumOfOrders + sht.Range("C4")
End If
Next sht
ThisWorkbook.Worksheets("Production").Range("") = sumOfOrders 'Use whichever range you want
End Sub
Код, который я предоставил, очевидно, работает только для "Сэндвич-буханки", но его легко расширить, чтобы включить все остальные элементы. Я просто даю вам идею, как продолжить.
Подводя итог, можно сказать, что этот код в основном проходит по всем рабочим листам и проверяет, соответствуют ли они клиенту. Если они делают, то он обновляет сумму. Когда цикл останавливается, окончательный результат передается в Production
.