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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2011, 10:22   #1
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию Макрос Сводной Таблиц для всех листов

Добрый день!

Есть n кол-во листов, как сделать единый макрос для создания сводной на всех листа?
Видел макрос перебора листов For...Each... и с перебором наверное проблем не будет.
Я так понимаю что исходя из кода создания сводной:

Код:
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=**********************, _
        Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="123!R1C1", TableName:="M1", _
        DefaultVersion:=xlPivotTableVersion12
Необходимо правильно указать "SourceData", на текущий активный лист и весь диапазон активного листа.

Как это правильно написать?
Richard123 вне форума Ответить с цитированием
Старый 21.01.2011, 10:34   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Не это ищите?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 21.01.2011, 11:12   #3
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию

Код:
Dim Pt As PivotTable
Объявляется Pt как сводную таблицу? Меня всегда интересовало зачем такое делать?

Код:
Dim strField As String
Шапка как текст?

Код:
      strField = Selection.Cells(1, 1).Text
Вот тут не могу перевести...

Код:
 
Range(Selection, Selection.End(xlDown)).Name = "Items"
Тут я так понимаю мы выделяем все данные и обзываим их как Items?

Код:
       ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
           SourceData:="=Items").CreatePivotTable TableDestination:="", _
               TableName:="ItemList"
Вот тут понято как указывается путь, спасибо)

Код:
       Set Pt = ActiveSheet.PivotTables("ItemList")
       ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 1)
       Pt.AddFields RowFields:=strField
       Pt.PivotFields(strField).Orientation = xlDataField
Это через визард, значит 2003 офис (я прав?)

Спасибо, Сергей!

А дальше чтобы это сделать для всех листов, надо сверху дописать вот это?
Код:
For Each Sh In ThisWorkbook.Worksheets

[макрос сводной]
Next
End Sub
И ещё вопрос - как сделать чтобы имена сводных менялись относительно листа и создавались на новых листа у которых будет имя =имя сводной+АБВГД ???
Richard123 вне форума Ответить с цитированием
Старый 21.01.2011, 12:33   #4
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Richard123 Посмотреть сообщение
Это через визард, значит 2003 офис (я прав?)
Нет. ......
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 21.01.2011, 12:53   #5
Richard123
Пользователь
 
Регистрация: 17.01.2011
Сообщений: 26
По умолчанию

А все остальное понято верно?

А что делать с:

Цитата:
Сообщение от Richard123 Посмотреть сообщение
[code]
И ещё вопрос - как сделать чтобы имена сводных менялись относительно листа и создавались на новых листа у которых будет имя =имя сводной+АБВГД ???
Richard123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для всех листов as-is Microsoft Office Excel 8 10.02.2011 21:15
Макрос для всех листов в книге Rok Microsoft Office Excel 5 26.04.2010 08:55
Макрос для сводной таблицы kipish_lp Microsoft Office Excel 2 21.04.2010 10:58
Макрос записанный вручную для всех листов as-is Microsoft Office Excel 1 14.03.2010 14:35