Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2015, 11:13   #1
riner19
 
Регистрация: 13.08.2015
Сообщений: 9
По умолчанию Промежуточные итоги

Добрый день!

Помогите пожалуйста. Нужно во вложенном файле написать макрос который будет считать промежуточные итоги и записывать их в зеленных ячейка. И самое главное в процессе работы количество строк будет меняться (где то добавятся, где то уменьшится)

За ранее спасибо!
Вложения
Тип файла: xlsx пробник.xlsx (10.0 Кб, 22 просмотров)
riner19 вне форума Ответить с цитированием
Старый 04.09.2015, 11:29   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Почему не хотите использовать Данные - (структура) - Промежуточные итоги?
И какой тип пром. итогов нужен - сумма, количество, среднее...?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 04.09.2015, 12:03   #3
riner19
 
Регистрация: 13.08.2015
Сообщений: 9
По умолчанию

Потому, что в оригинальном файле уже есть мощный макрос и почти весь процесс автоматизирован при нажатии одной кнопки, ну кроме итогов) И нужен именно макрос. И нужно чтобы считал сумму.
riner19 вне форума Ответить с цитированием
Старый 04.09.2015, 12:58   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

выполните CalcSum при активном листе с данными
Код:
Sub CalcSum()
  Dim rgs As Range, rg1 As Range
  Set rg1 = Cells(Rows.Count, 3).End(xlUp): Set rgs = rg1.Offset(1, 0)
  Do While rg1.Row < rgs.Row
    Set rgs = rg1
    Set rg1 = Columns(3).Find("Промежуточные итоги", rgs, xlValues, xlWhole, SearchDirection:=xlPrevious)
    If rg1.Row < rgs.Row Then SetSumm rg1, rgs Else SetSumm rgs.End(xlUp).Offset(-1, 0), rgs:  Exit Do
  Loop
End Sub


Sub SetSumm(rg1 As Range, rg2 As Range)
  Dim c As Long
  For c = 4 To 15
    rg2.Offset(0, c - rg1.Column) = WorksheetFunction.Sum(rg1.Offset(1, c - rg1.Column).Resize(rg2.Row - rg1.Row - 1, 1))
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.09.2015, 14:03   #5
riner19
 
Регистрация: 13.08.2015
Сообщений: 9
По умолчанию

Все работает на отлично. Огромное спасибо.
riner19 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРОМЕЖУТОЧНЫЕ.ИТОГИ azizkentau Microsoft Office Excel 1 20.10.2014 15:43
Промежуточные итоги поэтапно и в конце любознайка Microsoft Office Excel 6 07.11.2012 00:43
Функция ПРОМЕЖУТОЧНЫЕ ИТОГИ OgE®_M@G Microsoft Office Excel 4 26.03.2012 09:40
ПРОМЕЖУТОЧНЫЕ.ИТОГИ*валюта ZORRO2005 Microsoft Office Excel 4 06.08.2008 13:06
ПРОМЕЖУТОЧНЫЕ.ИТОГИ ZORRO2005 Microsoft Office Excel 1 08.09.2007 16:18