Добрый день! Понимаю, что моя проблема многим покажется смешной, но, надеюсь, не откажете в помощи) Есть длинный отчет по различным работам, и по каждой имеются объекты повышенного внимания, которые могут меняться, а в отчете по ним должна быть подробная информация. Расчет очень простой. Раньше я просто копировал расценки (Отчет_с в примере) и все было замечательно, но... Не понравилось. И эта ерунда вдруг вылилась в уйму ручной работы. Собственно просьба: Макрос для расчета затрат по объектам повышенного внимания.
Добрый день! Понимаю, что моя проблема многим покажется смешной, но, надеюсь, не откажете в помощи) Есть длинный отчет по различным работам, и по каждой имеются объекты повышенного внимания, которые могут меняться, а в отчете по ним должна быть подробная информация. Расчет очень простой. Раньше я просто копировал расценки (Отчет_с в примере) и все было замечательно, но... Не понравилось. И эта ерунда вдруг вылилась в уйму ручной работы. Собственно просьба: Макрос для расчета затрат по объектам повышенного внимания.МихСаныч
ну если вам надо заполнить на листе пустые ячейки в графе расценка, то это можно сделать штатными средствами: выделяете столбец расценка, жмете F5 выделить пустые ячейки .нажимаете = набираете F6 Ctrl+enter/ defkz
ну если вам надо заполнить на листе пустые ячейки в графе расценка, то это можно сделать штатными средствами: выделяете столбец расценка, жмете F5 выделить пустые ячейки .нажимаете = набираете F6 Ctrl+enter/ defkzкитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
ну если вам надо заполнить на листе пустые ячейки в графе расценка, то это можно сделать штатными средствами: выделяете столбец расценка, жмете F5 выделить пустые ячейки .нажимаете = набираете F6 Ctrl+enter/ defkz
Не должно быть расценок в строках с расчетами по объектам
Не понял, что нужно. Покажите в файле желаемый результат. Просто, судя по второму листу, там простейшими формулами можно обойтись.
Желаемый результат как раз в Отчет_с, и совершенно понятно, что можно обойтись формулами. Но забивать формулы с константами в 5000 с лишним строк - это как раз та проблема, которой хочется избежать. В принципе алгоритм понятен: в столбце с расценками от i-той строки провести поиск по убыванию номера строки, пока не будет найдена ячейка с данными, эти данные присвоить переменной "расценка", и произвести расчет в i-той строке умножением данных из столбца "Выполнение" на "расценку" с занесением результата в столбец "Сумма". Строки, в которых ячейка в столбце "Расценка" содержит какие-либо данные, из расчета исключить. Пробовал написать сам, но никогда раньше этим не занимался...
ну если вам надо заполнить на листе пустые ячейки в графе расценка, то это можно сделать штатными средствами: выделяете столбец расценка, жмете F5 выделить пустые ячейки .нажимаете = набираете F6 Ctrl+enter/ defkz
Не должно быть расценок в строках с расчетами по объектам
Не понял, что нужно. Покажите в файле желаемый результат. Просто, судя по второму листу, там простейшими формулами можно обойтись.
Желаемый результат как раз в Отчет_с, и совершенно понятно, что можно обойтись формулами. Но забивать формулы с константами в 5000 с лишним строк - это как раз та проблема, которой хочется избежать. В принципе алгоритм понятен: в столбце с расценками от i-той строки провести поиск по убыванию номера строки, пока не будет найдена ячейка с данными, эти данные присвоить переменной "расценка", и произвести расчет в i-той строке умножением данных из столбца "Выполнение" на "расценку" с занесением результата в столбец "Сумма". Строки, в которых ячейка в столбце "Расценка" содержит какие-либо данные, из расчета исключить. Пробовал написать сам, но никогда раньше этим не занимался...
Sub расчет() Dim i&, R& For i = 6 To Range("D" & Rows.Count).End(xlUp).Row If Cells(i, "F") > 0 Then R = Cells(i, "F") Cells(i, "F") = R Cells(i, "H") = Cells(i, "F") * Cells(i, "G") Next End Sub
[/vba]
Так что ли? [vba]
Код
Sub расчет() Dim i&, R& For i = 6 To Range("D" & Rows.Count).End(xlUp).Row If Cells(i, "F") > 0 Then R = Cells(i, "F") Cells(i, "F") = R Cells(i, "H") = Cells(i, "F") * Cells(i, "G") Next End Sub
Sub summ() x = 6 q = Cells(Rows.Count, 7).End(xlUp).Row Do While x < q y = Cells(x, 6).End(xlDown).Row If y > q Then y = q + 1 Range(Cells(x + 1, 8), Cells(y - 1, 8)).FormulaR1C1 = "=RC[-1]*R" & x & "c[-2]" x = y Loop End Sub
[/vba]
Добрый день. вариант [vba]
Код
Sub summ() x = 6 q = Cells(Rows.Count, 7).End(xlUp).Row Do While x < q y = Cells(x, 6).End(xlDown).Row If y > q Then y = q + 1 Range(Cells(x + 1, 8), Cells(y - 1, 8)).FormulaR1C1 = "=RC[-1]*R" & x & "c[-2]" x = y Loop End Sub