powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
8 сообщений из 8, страница 1 из 1
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37610894
skogkatt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени вам!

Подскажите пожалуйста, уважаемые спецы:

С точки зрения интерфейса задача такая: при даблклике по области данных сводной таблицы на листе Excel 2007 (источник данных тут же на соседнем листе) запускается функция, которая хитрым образом обрабатывает строчки источника данных (те самые, что в обычном режиме выводятся на новый лист) - форматирует, добавляет данные, причем в зависимости от того, на какой таблице кликнули, кто кликнул и т.д.

Проблема: если перехватить событие ДаблКлик, например через соответствующее событие в Workbook, то этих самых строчек (не ВСЕГО источника, а только имеющих отношение к данной ячейке) еще нет. КАК ИХ ДОСТАТЬ? Текущее решение - пользователи каждый раз после даблклика самостоятельно вызывают макрос, что их исключительно раздражает.

так и видится какая-нибудь функция Public Function GetSourceData_from_Pivotcell(dataRangeCell as Excel.Range) as Variant , которая вернет ссылку на статически рекордсет, или массив, или что угодно, по ссылке на ячейку из сводной таблицы


Даже более предпочтительный вариант - хотелось бы по даблклику по области данных получать не исходные данные, а фильтр этой ячейки сводной таблицы, чтобы иметь возможность отрабатывать в том числе и ячейки без данных (пустые). Хотел использовать автофильтр исходной таблицы функцией, найденной на www.contextures.com (см.приложенный зип), но она почему-то не всегда хочет работать в 2007 офисе

PS порылся на форуме - нашел только обсуждения по получению всего источника данных, а нужен именно фрагмент
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611214
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skogkatt, я вот абсолютно ничего не понял из Вашего объяснения проблемы.. но вот почему нельзя в событии DoubleClick написать Call и вызывать автоматом тот макрос, который так раздражает необходимостью совего вызова пользователя?
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611315
skogkatt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

извиняюсь за корявое объяснение

по-другому: Сейчас происходит так - (1) пользователь даблкликает ячейку Х в области данных на сводной таблице, (2) стандартное поведение Excel - появляется новый лист (пусть будет "Лист1") со строчками исходной таблицы, которые суммируются в ячейке Х (3) пользователь вызывает макрос.

так вот, событие DoubleClick происходит ДО шага (2). В это время листа "Лист1" еще нет! Он появится только после выхода из события.

Но ведь сам Эксель умеет "доставать" этот самый лист и эти самые строчки исходной таблицы? Вот я и хочу в обработчике DoubleClick добыть эти строчки , отменить стандартное поведение Excel на шаге (2) и самому отобразить эти строчки в нужном мне виде и сделать с ними все что надо. Вариант Б - добыть набор значений, определяющих значения полей сводной таблицы в этой ячейке - как это в сокращенном виде делает эксель во всплывающей подсказке (см. скриншот). Если на пальцах, по этому скриншоту, даблкликает юзер ячейку D9, обработчик события DoubleClick вызывает функцию, передает в функцию эту ячейку, а функция возвращает, к примеру, массив такого вида:

Поле ЗначениеГруппа КЦГод 2011Месяц 201102

Вариант Б даже предпочтительней - позволяет работать с ячейками без значений.
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611346
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skogkatt, а что вам мешает:
для 1 варианта: прописать программно появление требуемого листа (запишите для начала в макрорекордере), а потом программно же причесать его.
для 2 варианта: использовать функцию =ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ()
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611402
skogkatt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

Первый способ - спасибо за помощь экстренейшему из реверсов, почему-то использовать Selection.ShowDetail = True совершенно не пришло в голову :) Рекордер как всегда помог


Для второго варианта функция ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ() не пойдет... нужна, так сказать, обратная функция. ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ(), насколько я понимаю, по набору данных {[Поле, Значение],..} возвращает данные, хранящиеся в отчет (из области данных или итогов). А мне нужно наоборот - скормить функции адрес ячейки в области итогов или области данных и получить из функции набор данных {[Поле, Значение],..} (см. таблицу выше). Тут видимо придется перебирать ColumnItems и RowItems из PivotCell.. Надеялся, что-нибудь попроще будет
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611500
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такие тоже есть, вроде.. почитайте ф-ции работы с базой.. или около того
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611509
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пораскинул мозгами - нет такого. первый вариант однозначно.
...
Рейтинг: 0 / 0
Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
    #37611763
skogkatt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

спасибо в любом случае! :)

если получится с перебором - выложу, вдруг народу пригодится
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel PivotTable: Доступ к фрагменту источника данных/фильтру сводной таблицы через ячейку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]