Задача состоит в том, чтобы высчитывать зарплату бригады работников с умножением на надбавки за профессию исходя из участвующих работников. Столбцы: A - постоянен, B,C - изменяемые значения, D - формулы и вывод значений макроса. Ячейка B9 - вывод итогового значения работы макроса. Часть макроса я написал, то что не сложно. А вот с перемножением по выбору не получается.
Заранее спасибо за помощь
Здравствуйте! Помогите с написанием макроса.
Задача состоит в том, чтобы высчитывать зарплату бригады работников с умножением на надбавки за профессию исходя из участвующих работников. Столбцы: A - постоянен, B,C - изменяемые значения, D - формулы и вывод значений макроса. Ячейка B9 - вывод итогового значения работы макроса. Часть макроса я написал, то что не сложно. А вот с перемножением по выбору не получается.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("C2:C8")) Is Nothing Then Application.EnableEvents = False Dim S As Double Dim i As Integer S = WorksheetFunction.Sum(Range("D2:D4")) For i = 6 To 8 If Cells(i, "C") = "да" Then S = S * Cells(i, "B") End If Next Range("B9") = S End If Application.EnableEvents = True End Sub
[/vba]
Может так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("C2:C8")) Is Nothing Then Application.EnableEvents = False Dim S As Double Dim i As Integer S = WorksheetFunction.Sum(Range("D2:D4")) For i = 6 To 8 If Cells(i, "C") = "да" Then S = S * Cells(i, "B") End If Next Range("B9") = S End If Application.EnableEvents = True End Sub
Не совсем так. При интеграции Вашего кода выскакивает окно записи кода, либо различные ошибки по операторам. Да и вообще эксель пару раз рухнул. Но спасибо, так как направили в нужное русло. С интеграцией разобрался в итоге получилось так
[vba]
Код
Dim i As Integer S = WorksheetFunction.Sum(Range("D2:D4")) For i = 6 To 8 If Cells(i, "C") = "да" Then S = S * Cells(i, "B") End If Next Range("B9") = S
[/vba] Вставил это в свой макрос после своего кода и все заработало Но остался вопрос - А что делает все то что я удалил?
Не совсем так. При интеграции Вашего кода выскакивает окно записи кода, либо различные ошибки по операторам. Да и вообще эксель пару раз рухнул. Но спасибо, так как направили в нужное русло. С интеграцией разобрался в итоге получилось так
[vba]
Код
Dim i As Integer S = WorksheetFunction.Sum(Range("D2:D4")) For i = 6 To 8 If Cells(i, "C") = "да" Then S = S * Cells(i, "B") End If Next Range("B9") = S
[/vba] Вставил это в свой макрос после своего кода и все заработало Но остался вопрос - А что делает все то что я удалил?dittor
Сообщение отредактировал dittor - Суббота, 21.09.2019, 22:46
Помогите еще. А как сделать чтоб сумма не перемножалась на все значения ячеек диапазона, а лишь на одно, наибольшее значение из диапазона 6-8 столбца "B", при се том же условии диапазона 6-8 столбца "C"
Помогите еще. А как сделать чтоб сумма не перемножалась на все значения ячеек диапазона, а лишь на одно, наибольшее значение из диапазона 6-8 столбца "B", при се том же условии диапазона 6-8 столбца "C"dittor
Сообщение отредактировал dittor - Вторник, 24.09.2019, 21:32