Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Классический макет сводной таблицы. VBA. - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Классический макет сводной таблицы. VBA. (Формулы)
Классический макет сводной таблицы. VBA.
Pavel55 Дата: Воскресенье, 23.10.2011, 05:31 | Сообщение № 21
Группа: Друзья
Ранг: Прохожий
Сообщений: 5
Репутация: 6 ±
Замечаний: 0% ±

Я не очень разбираюсь во всём этом, но может так заработает[vba]
Код

Private WithEvents App As Application

Private Sub Workbook_Open()
      Set App = Application
End Sub

Private Sub App_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
      Application.EnableEvents = False
      With Target
          .InGridDropZones = True
          .RowAxisLayout xlTabularRow
          .TableStyle2 = ""
      End With
      Application.EnableEvents = True
End Sub
[/vba]
 
Ответить
СообщениеЯ не очень разбираюсь во всём этом, но может так заработает[vba]
Код

Private WithEvents App As Application

Private Sub Workbook_Open()
      Set App = Application
End Sub

Private Sub App_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
      Application.EnableEvents = False
      With Target
          .InGridDropZones = True
          .RowAxisLayout xlTabularRow
          .TableStyle2 = ""
      End With
      Application.EnableEvents = True
End Sub
[/vba]

Автор - Pavel55
Дата добавления - 23.10.2011 в 05:31
Serge_007 Дата: Воскресенье, 23.10.2011, 05:33 | Сообщение № 22
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Pavel55)
может так заработает

Не-а sad


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Pavel55)
может так заработает

Не-а sad

Автор - Serge_007
Дата добавления - 23.10.2011 в 05:33
Pavel55 Дата: Воскресенье, 23.10.2011, 06:04 | Сообщение № 23
Группа: Друзья
Ранг: Прохожий
Сообщений: 5
Репутация: 6 ±
Замечаний: 0% ±

может так? )
[vba]
Код

Private WithEvents App As Application

Private Sub Workbook_Open()
        Set App = Application
End Sub

Private Sub App_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
Dim pt As PivotTable, ws As Worksheet
       Application.EnableEvents = False
       For Each ws In Worksheets
           For Each pt In ws.PivotTables
               With pt
                   .InGridDropZones = True
                   .RowAxisLayout xlTabularRow
                   .TableStyle2 = ""
               End With
           Next pt
       Next ws
       Application.EnableEvents = True
End Sub
[/vba]
P.S. если нет, то я пас ))
 
Ответить
Сообщениеможет так? )
[vba]
Код

Private WithEvents App As Application

Private Sub Workbook_Open()
        Set App = Application
End Sub

Private Sub App_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
Dim pt As PivotTable, ws As Worksheet
       Application.EnableEvents = False
       For Each ws In Worksheets
           For Each pt In ws.PivotTables
               With pt
                   .InGridDropZones = True
                   .RowAxisLayout xlTabularRow
                   .TableStyle2 = ""
               End With
           Next pt
       Next ws
       Application.EnableEvents = True
End Sub
[/vba]
P.S. если нет, то я пас ))

Автор - Pavel55
Дата добавления - 23.10.2011 в 06:04
Serge_007 Дата: Воскресенье, 23.10.2011, 06:11 | Сообщение № 24
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Это в Personal?
К сообщению приложен файл: 5797304.jpg (34.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЭто в Personal?

Автор - Serge_007
Дата добавления - 23.10.2011 в 06:11
Саня Дата: Среда, 02.11.2011, 00:17 | Сообщение № 25
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
[vba]
Код
Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
      Target.InGridDropZones = True
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
      Target.InGridDropZones = True
End Sub
[/vba]

Автор - Саня
Дата добавления - 02.11.2011 в 00:17
Serge_007 Дата: Среда, 02.11.2011, 00:43 | Сообщение № 26
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Нет Саня, не работает...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНет Саня, не работает...

Автор - Serge_007
Дата добавления - 02.11.2011 в 00:43
Саня Дата: Среда, 02.11.2011, 01:23 | Сообщение № 27
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
у меня все работает
напиши, как ты это проверяешь.
 
Ответить
Сообщениеу меня все работает
напиши, как ты это проверяешь.

Автор - Саня
Дата добавления - 02.11.2011 в 01:23
Serge_007 Дата: Среда, 02.11.2011, 09:51 | Сообщение № 28
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Саня)
напиши, как ты это проверяешь.

Вставляю твой код в модуль Эта книга (?!), создаю сводную - макет по умолчанию.
Попробовал в Personal - результат аналогичный.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Саня)
напиши, как ты это проверяешь.

Вставляю твой код в модуль Эта книга (?!), создаю сводную - макет по умолчанию.
Попробовал в Personal - результат аналогичный.

Автор - Serge_007
Дата добавления - 02.11.2011 в 09:51
Саня Дата: Среда, 02.11.2011, 10:48 | Сообщение № 29
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
если ты вставляешь в модуль "ЭтаКнига", то работать будет (при условии, что включены события) именно в этой книге.
Если нужен функционал во всем екселе, то либо в personal либо в надстройку(этот способ для меня лично предпочтительнее, т.к. надстройкой можно модифицировать ленту) нужно влепить модуль класса для событий уровня приложения
 
Ответить
Сообщениеесли ты вставляешь в модуль "ЭтаКнига", то работать будет (при условии, что включены события) именно в этой книге.
Если нужен функционал во всем екселе, то либо в personal либо в надстройку(этот способ для меня лично предпочтительнее, т.к. надстройкой можно модифицировать ленту) нужно влепить модуль класса для событий уровня приложения

Автор - Саня
Дата добавления - 02.11.2011 в 10:48
Serge_007 Дата: Среда, 02.11.2011, 10:50 | Сообщение № 30
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Саня)
при условии, что включены события

А как проверить что они включены?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Саня)
при условии, что включены события

А как проверить что они включены?

Автор - Serge_007
Дата добавления - 02.11.2011 в 10:50
Саня Дата: Среда, 02.11.2011, 10:52 | Сообщение № 31
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Alt+F11
ctrl+G, в окне immediate пишешь:
? application.enableevents + enter (чтобы посмотреть)
application.enableevents=true + enter (чтобы изменить)
 
Ответить
СообщениеAlt+F11
ctrl+G, в окне immediate пишешь:
? application.enableevents + enter (чтобы посмотреть)
application.enableevents=true + enter (чтобы изменить)

Автор - Саня
Дата добавления - 02.11.2011 в 10:52
Саня Дата: Среда, 02.11.2011, 10:56 | Сообщение № 32
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
да, кстати, это событие добавлено только в XL 2010
 
Ответить
Сообщениеда, кстати, это событие добавлено только в XL 2010

Автор - Саня
Дата добавления - 02.11.2011 в 10:56
Serge_007 Дата: Среда, 02.11.2011, 11:16 | Сообщение № 33
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Саня)
? application.enableevents + enter (чтобы посмотреть)

? application.enableevents
True

Quote (Саня)
это событие добавлено только в XL 2010

У меня как-раз 2010 smile

Quote (Саня)
если ты вставляешь в модуль "ЭтаКнига", то работать будет

Всё-равно макет получается не классический.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Саня)
? application.enableevents + enter (чтобы посмотреть)

? application.enableevents
True

Quote (Саня)
это событие добавлено только в XL 2010

У меня как-раз 2010 smile

Quote (Саня)
если ты вставляешь в модуль "ЭтаКнига", то работать будет

Всё-равно макет получается не классический.

Автор - Serge_007
Дата добавления - 02.11.2011 в 11:16
Саня Дата: Среда, 02.11.2011, 11:27 | Сообщение № 34
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
ладно, будем копать.
поставь курсор на 1-ой строке обработчика события "Private Sub Workbook_SheetPivotTableChangeSync..."
F9

создай сводную
да, вопрос еще как ты создаешь сводную таблицу (Вставка - Сводная Таблица)

у тебя должен произойти останов на той строке, к-рую ты выделил F9
 
Ответить
Сообщениеладно, будем копать.
поставь курсор на 1-ой строке обработчика события "Private Sub Workbook_SheetPivotTableChangeSync..."
F9

создай сводную
да, вопрос еще как ты создаешь сводную таблицу (Вставка - Сводная Таблица)

у тебя должен произойти останов на той строке, к-рую ты выделил F9

Автор - Саня
Дата добавления - 02.11.2011 в 11:27
Serge_007 Дата: Среда, 02.11.2011, 11:35 | Сообщение № 35
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Саня)
у тебя должен произойти останов на той строке, к-рую ты выделил F9

Строка выделилась желтым, слева коричневый кружок, с желтой стрелочкой.

Quote (Саня)
ак ты создаешь сводную таблицу

Мастером


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Саня)
у тебя должен произойти останов на той строке, к-рую ты выделил F9

Строка выделилась желтым, слева коричневый кружок, с желтой стрелочкой.

Quote (Саня)
ак ты создаешь сводную таблицу

Мастером

Автор - Serge_007
Дата добавления - 02.11.2011 в 11:35
Саня Дата: Среда, 02.11.2011, 12:23 | Сообщение № 36
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
значит событие происходит, но почему не меняет макет, хз.
когда желтая стрелка появится, потыкай F8 до выхода из обработчика события, смотри на сводную после прохождения кода по главной строке.
а попробуй вставка-сводная таблица (здесь даже дважды это событие "простреливает")

ps
не могу найти на ленте этот мастер - никогда им не пользовался, он не на ленте, судя по всему...
 
Ответить
Сообщениезначит событие происходит, но почему не меняет макет, хз.
когда желтая стрелка появится, потыкай F8 до выхода из обработчика события, смотри на сводную после прохождения кода по главной строке.
а попробуй вставка-сводная таблица (здесь даже дважды это событие "простреливает")

ps
не могу найти на ленте этот мастер - никогда им не пользовался, он не на ленте, судя по всему...

Автор - Саня
Дата добавления - 02.11.2011 в 12:23
Саня Дата: Среда, 02.11.2011, 12:35 | Сообщение № 37
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
у меня и с мастером все работает как надо cool
 
Ответить
Сообщениеу меня и с мастером все работает как надо cool

Автор - Саня
Дата добавления - 02.11.2011 в 12:35
Serge_007 Дата: Среда, 02.11.2011, 13:40 | Сообщение № 38
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Саня)
и с мастером все работает как надо

Потрясающе!
Галка Классический макет сводной таблицы (разрешено перетаскивание полей) ставится, но поля НЕ ПЕРЕТАСКИВАЮТСЯ!..


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Саня)
и с мастером все работает как надо

Потрясающе!
Галка Классический макет сводной таблицы (разрешено перетаскивание полей) ставится, но поля НЕ ПЕРЕТАСКИВАЮТСЯ!..

Автор - Serge_007
Дата добавления - 02.11.2011 в 13:40
Саня Дата: Среда, 02.11.2011, 13:43 | Сообщение № 39
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
так и есть, поля не перетаскиваются, а галочка стоит.
УУУУУУУУ! Демократия в опасности!!! biggrin
 
Ответить
Сообщениетак и есть, поля не перетаскиваются, а галочка стоит.
УУУУУУУУ! Демократия в опасности!!! biggrin

Автор - Саня
Дата добавления - 02.11.2011 в 13:43
Саня Дата: Среда, 02.11.2011, 14:05 | Сообщение № 40
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
чудо науки и техники
[vba]
Код
Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
      Target.InGridDropZones = True
      On Error Resume Next
      Target.RowAxisLayout xlTabularRow
      Debug.Print Now
End Sub
[/vba]
 
Ответить
Сообщениечудо науки и техники
[vba]
Код
Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
      Target.InGridDropZones = True
      On Error Resume Next
      Target.RowAxisLayout xlTabularRow
      Debug.Print Now
End Sub
[/vba]

Автор - Саня
Дата добавления - 02.11.2011 в 14:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Классический макет сводной таблицы. VBA. (Формулы)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!