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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2013, 09:37   #1
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию Макрос суммы

Здравствуйте!
Скажите как написать макрос.
В прикрепленном файле в столбце А коды, они стоят в разнабой.
Нужно чтобы нажал на кнопку и коды отсортировались по значению.
Далее под одинаковыми кодами ставилась бы пустая строка и считалась сумма в столбце F. И так с каждым кодом.
Вложения
Тип файла: rar Лист Microsoft Office Excel (2).rar (9.5 Кб, 19 просмотров)
and150382 вне форума Ответить с цитированием
Старый 04.10.2013, 09:57   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Можно сводной, можно макросом http://www.planetaexcel.ru/forum.php?thread_id=26105
Только вот зачем строки добавлять, зачем сортировать (хотя это можно добавить в код) и вообще куда и в каком виде нужен результат?
Я пока тем макросом (файл в конце темы)сделал такую табличку:

6790 360 10 1|3|42|44|45|45|45|45|45|45
7150 624 9 78|78|78|78|9|69|78|78|78
7158 84 2 42|42
7318 400 5 80|80|80|80|80
7324 240 4 60|60|60|60
7494 120 2 60|60
7514 135 3 45|45|45


А, понял - нужно в этой же таблице сделать Outline (не помню как это в русском...)...
http://agsci.psu.edu/it/how-to/creat...tline-in-excel
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 04.10.2013 в 10:17.
Hugo121 вне форума Ответить с цитированием
Старый 04.10.2013, 10:24   #3
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Должно получиться так. ( в скрепке)

Зеленым выделил сумму
Вложения
Тип файла: rar Лист Microsoft Office Excel (2).rar (9.9 Кб, 15 просмотров)
and150382 вне форума Ответить с цитированием
Старый 04.10.2013, 11:34   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Не то подсказал - outline это второй возможный шаг.
А первый - это subtotals: Data->Subtotals
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 04.10.2013, 12:58   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

добавил колонку сумм и формулу в ней.
сортируете кнопками сортировки на ленте "данные"
напротив последнего значения видите сумму.
в несортированном списке там будет сообщение
Вложения
Тип файла: rar Лист Microsoft Office Excel (2).rar (11.1 Кб, 12 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 04.10.2013 в 13:15.
IgorGO вне форума Ответить с цитированием
Старый 04.10.2013, 22:39   #6
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Почти так.
Но нужно чтобы получалось именно так как я вставил в посте #3.
И нужно именно макросом.
Данные копируются с другой программы и будут вставлятся в этот файл, а потом распечатываться ( поэтому нужно как в примере #3).
Формулами не подходит, т.к. их затрут.
and150382 вне форума Ответить с цитированием
Старый 05.10.2013, 09:30   #7
VictorK
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 64
По умолчанию

Я в VBA не силен, но попробовал просто записать в макрос последовательность действий: На вкладке Данные включил Фильтр (Фильтр можно не включать, но с ним как то спокойнее за пустые столбцы), установил курсор в столбец A и нажал сортировку, затем в группе Структура выбрал опцию Промежуточный итог, указал необходимые параметры и применил.
Получилось вот это:
Код:
Sub Macros_1()
    Selection.AutoFilter
    Range("A1").Select
    ActiveWorkbook.Worksheets("вход").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("вход").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("вход").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(6), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub
Скорее всего, код неоптимальный, но результат похож на требования and150382.
VictorK вне форума Ответить с цитированием
Старый 05.10.2013, 12:28   #8
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Идея понравилась. Поигрался
Код:
Sub Мяу()
    Application.ScreenUpdating = False
    With Range("A1").CurrentRegion
        .Sort Range("A1"), 1, , , , , , xlYes
        .Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(6), _
                  Replace:=True, PageBreaks:=False, SummaryBelowData:=True
    End With
    With Range("A1").CurrentRegion
        .Value = .Value
        .ClearOutline
        With .Resize(, 1)
            .AutoFilter Field:=1, Criteria1:="=*тог*", Operator:=xlAnd
            .Rows(.Count).EntireRow.ClearContents
            .Offset(1).ClearContents
            .AutoFilter
        End With
    End With
    Application.ScreenUpdating = True
End Sub
RAN. вне форума Ответить с цитированием
Старый 05.10.2013, 23:22   #9
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Спасибо большое. Привязал макрос к кнопке.
Скажите а как сделать чтобы макрос не выполнялся после повторного нажатия на кнопку?
Тоесть 1 раз нажал на кнопку - получил результат, второй раз нажал и ничего не произошло.
and150382 вне форума Ответить с цитированием
Старый 07.10.2013, 23:18   #10
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Код:
    With Range("A1").CurrentRegion
        If Application.WorksheetFunction.CountBlank(.Resize(, 1)) Then Exit Sub
        .Sort Range("A1"), 1, , , , , , xlYes
RAN. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос суммы KApSuL Microsoft Office Excel 1 26.06.2013 17:13
Задача по Delphi 7: StringGrid с целыми числами, найти наибольшую суммы элементов столбцов или наибольшую суммы элементов строк Ard123 Помощь студентам 5 03.12.2012 01:10
макрос для подсчета суммы Olya1985 Microsoft Office Excel 7 19.02.2011 11:45
Макрос суммы колонки Romuald Microsoft Office Excel 6 27.01.2009 15:39
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15