Страницы: 1
RSS
Копирование файла, содержащего в себе сводную таблицу и её источник
 
Доброго всем времени суток!Итак, есть файл ( назовем его "Шаблон пустой" ) с диапазоном, форматированным как таблица ( пусть её имя будет "Таблица" )  и сводная таблица, сформированная на базе диапазона "Таблица". Всё в одном файле. Переходим в Анализ - Источник данных - Источник данных, указан путь: "Таблица". Всё верно.

Копируем файл "Шаблон пустой" в другую папку, переименовываем в "Шаблон заполненный", заполняем "Таблицу" данными, переходим в сводную, а там... в качестве исходных данных для сводной указан уже не диапазон "Таблица" в текущем файле, а путь к оригинальному файлу "Шаблон пустой" в виде '\Users\...\Шаблон пустой.xlsx'!таблица
Т.е. надо каждый раз, когда будет происходить операция копирования шаблона и его заполнение, вдобавок указывать путь к новому диапазону в новом файле.
Я понимаю, в чем логика Excel, но все же как ему объянить, что мне нужен относительный путь (относительно текущего рабочего файла) к исходным данным для сводной, а не жестко закрепленный абсолютный.

Нашел вопрос человека с такой же проблемой, но ответа на вопрос там нет (www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=57514&TITLE_SEO=57514-istochnik-dannykh-svodnoy-tablitsy&MID=480521&tags=&q=%D1%81%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F+%D1%82%D0%B0%D0­%B1%D0%BB%D0%B8%D1%86%D0%B0&FORUM_ID%5B0%5D=0&DATE_CHANGE=0&order=relevance&s=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8#message480521)
Есть ли решение? Использую MS Excel 2013.

С уважением, Артур
Изменено: a1pha - 14.08.2014 02:34:26
 
Могу только предположительно предложить, менять путь макросом. Про относительные пути в экселе ничего не слышал.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, можете предложить такой макрос? Чтобы его можно было кинуть на кнопку.
 
a1pha, могу предложить записать макрорекордером и доработать. Открываете копию шаблона с проблемной связью, включаете запись, меняете связь с источником, останавливаете запись, смотрите макрос и дорабатываете, а что не понятно - спрашиваете.
Да, и без файла-примера мне трудно с конкретикой. Я ж не спец. по ВБА, а учащийся по форуму. :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
повторить в 2010 не удалось.
Похоже, это проблема именно 2013 - вот здесь обсуждение.
Там говорят, что более-менее работающий момент - это делать копии через Save As.
Цитата
еще оттуда:
I have actually figured out that the problem is not there if I use the data model when creating the pivot table (flagging Add  this data to the data model when creating the pivot table). In that case I can move the file around and rename it without Excel changing references from pointing to internal data to absolute path of a file (that in case of a rename, does no longer exists).
и вот тут говорят то же самое:
Цитата
As a workaround, I tick the option 'prefer the Excel Data Model..' to get rid of this issue.When I create a pivot table, excel create a data model and then when I copy it to another folder, it would not change my data source path.
File->options->advanced->find the Data group, check the option 'prefer Excel Data Model....'

For these workbooks which have already created the pivot table, you can use 'save as' to save it to another folder, I've tested it, the path wouldn't become to absolute.
F1 творит чудеса
 
Да, а в макросе, если таковой писать, можно использовать разные методы
Код
' вариант 1
ActiveSheet.PivotTables("СводнаяТаблица1").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Таблица1")
' вариант 2 - задаем абсолютный путь
    ActiveSheet.PivotTables("СводнаяТаблица1").SourceData = "C:\XLS\[1222 - копия.xlsx]Лист1!R1C1:R5C2"
' вариант 3 - тем же способом путь относительный
    ActiveSheet.PivotTables("СводнаяТаблица1").SourceData = "Таблица1"
причем какой именно сейчас путь - можно и не интересоваться
F1 творит чудеса
 
Максим Зеленский, Большое человеческое вам спасибо! Работают оба ваших способа! Как показанный, так и этот:
Цитата
Максим Зеленский пишет: Там говорят, что более-менее работающий момент - это делать копии через Save As
Еще раз благодарю!
Изменено: a1pha - 14.08.2014 02:35:32
 
Максим Зеленский , здравствуйте.
Можете ли Вы подсказать макрос, который позволит подключать ВСЕ сводные таблицы книги к одной и той же таблице?
 
Max.Liubimov, кнопка цитирования не для ответа! Хотите обратиться по имени? - для этого есть специальная кнопка. Она так и называется: "Имя".
 
Юрий М,да я как бы ко всем обращался....
 
Если ко всем - зачем цитировать весь код Зеленского?
 
Потому что мне нужен подобный код, но ко ВСЕМ ТАБЛИЦАМ.
Наверняка же вы знаете, куда там поставить что-то типо "all tables" :D

Подскажите, пожалуйста.
Неужели надо перечислять имена ВСЕХ таблиц???
Изменено: Max.Liubimov - 07.09.2018 14:36:25
 
Отбой!
Это - в меню документа - сведения - проверка книги - Разрешить сохранение этих сведений в файле.
решает проблему ;)  
Страницы: 1
Наверх