Страницы: 1
RSS
Макрос подсчета промежуточных итогов на разных листах с неодинаковым количеством заполненных строк
 

Здравствуйте,

мой вопрос касается корректировки макроса, записанного через функцию «Запись макроса» (прилагается в документе Word).

Что имеется: в сводный файл собирается информация из excel-файлов разных менеджеров, за которым закреплена конкретная территория. После того, как сводный файл готов, запускается макрос, который формирует отдельные листы для каждой территории путем копирования данных с листа «Сводный» (в примере уже показано какой файл получается на выходе: лист «Сводный», лист «Северный», лист «Южный» - в реальных данных таких листов  получается от 16 до 20, а общее количество записей на листе «Сводный» равно примерно 800).

Что необходимо: добавить возможность на сформированных листах «Северный», «Южный» подсчет промежуточных итогов в зависимости от примененного фильтра (например, подсчитать только задачи в статусе «Оценка» и т.д.).

Проблема: ввиду того, что каждая "Территория" имеет больше/меньше строк, не могу понять как скорректировать макрос, чтобы выбиралась строка на две ниже от заполненных данных и там бы указывалась формула? Записанный макрос (из примера в документе Word) работает на листах, где число записей попадает в диапазон, там же, где их больше уже применить его массово не получается. Т.е. как заменить Range ("E23").Select на возможность выбора ячейки, которая бы шла на две строки ниже и чтобы не было привязки к номеру ячейки в коде макроса?...

Прошу вас о вашей профессиональной помощи в этом вопросе, т.к. сама знакома с макросами только лишь вторую неделю и то путем самообучения.

Заранее благодарна за любой совет!

С уважением,

К.
 
Зачем отдельно DOSX файл с макросом? Прямо в примере надо было код выложить. Так надо?
Код
Sub www()
    Dim lr&
    lr = Cells(1048576, 1).End(xlUp).Row + 3
    Range("d" & lr).Value = "Итого задач"
    With Range("D" & lr).Resize(, 2)
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Merge
    End With
    Range("F" & lr).FormulaR1C1 = "=SUBTOTAL(3,(R3C1:R551C1))"
    With Range("D" & lr).Resize(, 3).Font
        .Name = "Calibri"
        .Size = 26
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
        .Bold = True
        With .Parent.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 15773696
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End With
End Sub
Изменено: kuklp - 09.08.2018 06:50:17
Я сам - дурнее всякого примера! ...
 
kuklp, да, нужно было именно так! при выполнении написанного Вами макроса выдается желаемый результат! большое спасибо за помощь!!!
Страницы: 1
Наверх