Страницы: 1 2 След.
RSS
Сводная таблица из множества книг
 
Сразу извиняюсь за то, что это не вопрос :-) Просто несколько дней назад в одном из форумов увидел такую задачу, а теперь не могу найти тему. Поскольку решение я таки наваял, то пожалуй выложу - вдруг кто-нибудь вспомнит в какой теме это было, или вообще кому-нибудь пригодится. Выкладываю пример из основного файл с кодом и 4-х баз данных. После нажатия кнопки нужно будет выбрать файлы баз данных для консолидации в сводной таблице. Пример упрощенный и в нем нет проверок на ошибки.  
Все тоже самое можно сделать и без VBA, создав подсоединение и команду SQL вручную.
KL
 
Кирилл, не это? http://www.planetaexcel.ru/forum.php?thread_id=18439
 
{quote}{login=Юрий М}{date=22.08.2010 09:44}{thema=}{post}Кирилл, не это? http://www.planetaexcel.ru/forum.php?thread_id=18439{/post}{/quote}  
Юр, спасибо, но нет :-) Там я решение вроде бы дал - оно несколько иное: там релятивные таблицы, т.е. связь по foreign key, а тут консолидация множественных баз данных с единой структурой. Сходство в том, что оба решения подсоединяются сразу к нескольким книгам.
KL
 
Лучше заменить номер драйвера (DriverId) с 1046 на 790 в следующей строке, чтобы не было проблем с ручным обновлением данных в XL2003 или XL2007:  
 
   strCon = _  
       "ODBC;" & _  
       "DSN=Excel Files;" & _  
       "DBQ=" & arrFiles(1) & ";" & _  
       "DefaultDir=" & "" & ";" & _  
       "DriverId=790;" & _  
       "MaxBufferSize=2048;" & _  
       "PageTimeout=5"  
 
Прилагаю исправленный пример.
KL
 
Уважаемый KL. Дай Бог Вам здоровья. Вторично. <BR>Значала здесь: http://www.planetaexcel.ru/forum.php?thread_id=9072&page_forum=2&allnum_forum=54 <BR>удалось адаптировать Ваше решение под свои задачи. Теперь попробую это решение привязать.
 
Добрый вечер!  
Есть такой вопрос.  
Я вырезал созданную СТ таблицу из его книги и сохранил в другой книге.  
Но когда обновляю он ссылается на прежнию книгу и обновляется нормально пока 1-я книга открыта. Как только 1-я книга закрыта она не обновляется, пишет не могу открыть 1-ю книгу! Как можно обновлять если 1-я книга  закрыта?  
Заранее благодарен!
With my best regards,      Inter_E
 
{quote}{login=Inter_E}{date=09.09.2010 09:43}{thema=}{post}Добрый вечер!  
Есть такой вопрос.  
Я вырезал созданную СТ таблицу из его книги и сохранил в другой книге.  
Но когда обновляю он ссылается на прежнию книгу и обновляется нормально пока 1-я книга открыта. Как только 1-я книга закрыта она не обновляется, пишет не могу открыть 1-ю книгу! Как можно обновлять если 1-я книга  закрыта?  
Заранее благодарен!{/post}{/quote}У меня работает и с закрытыми книгами. Эксель какой?
 
{quote}{login=Serge 007}{date=09.09.2010 09:47}{thema=Re: }{post}{quote}{login=Inter_E}{date=09.09.2010 09:43}{thema=}{post}Добрый вечер!  
Есть такой вопрос.  
Заранее благодарен!{/post}{/quote}У меня работает и с закрытыми книгами. Эксель какой?{/post}{/quote}  
 
2007-ой Excel, офис стандарт 2007, на русском
With my best regards,      Inter_E
 
{quote}{login=Inter_E}{date=09.09.2010 09:43}{thema=}{post}Добрый вечер!  
Есть такой вопрос.  
Я вырезал созданную СТ таблицу из его книги и сохранил в другой книге.  
Но когда обновляю он ссылается на прежнию книгу и обновляется нормально пока 1-я книга открыта. Как только 1-я книга закрыта она не обновляется, пишет не могу открыть 1-ю книгу! Как можно обновлять если 1-я книга  закрыта?  
Заранее благодарен!{/post}{/quote}  
СТ привязана к кэшу, кэш привязан подключению к внешним данным, подключение содержит SQL запрос, запрос содержит адреса файлов. Вывод: надо редактировать SQL запрос в новом файле.
KL
 
{quote}{login=KL}{date=22.08.2010 09:38}{thema=Сводная таблица из множества книг}{post}Сразу извиняюсь за то, что это не вопрос :-) Просто несколько дней назад в одном из форумов увидел такую задачу, а теперь не могу найти тему. Поскольку решение я таки наваял, то пожалуй выложу - вдруг кто-нибудь вспомнит в какой теме это было, или вообще кому-нибудь пригодится. Выкладываю пример из основного файл с кодом и 4-х баз данных. После нажатия кнопки нужно будет выбрать файлы баз данных для консолидации в сводной таблице. Пример упрощенный и в нем нет проверок на ошибки.  
Все тоже самое можно сделать и без VBA, создав подсоединение и команду SQL вручную.{/post}{/quote}  
 
Добрый вечер KL!    
Я нашел этот пример в зарубежном сайте. (короче в этот пост планеты я пришел через зарубежный сайт скачав пример, там код, в коде был указан наша планета, я думал в зарубежье есть другой KL, когда фамилию прочитал тогда понял, Рэспект, а этот сайт какого государства? похоже они хвалять русских!) Вы еще английский хорошо знаете?  
В этом примере есть скрин.апдейт.фолс и файлы открываются или нет?
With my best regards,      Inter_E
 
Этот блог не принадлежит никаким государствам, и национальности там роли не играют :-) Его создала Дебра Далглейш Microsoft MVP из Канады. Мы с ней плотно общаемся и я изредка подкидываю ей приемы работы с СТ.    
Насколько я понимаю, строка Application.ScreenUpdating=False никакого отношения к описанной вами проблеме не имеет. Поробуйте проделать то, о чем я говорю в моем предыдущем посте. Прилагаю скриншот.
KL
 
{quote}{login=KL}{date=09.09.2010 10:27}{thema=}{post}Этот блог не принадлежит никаким государствам, и национальности там роли не играют :-) Его создала Дебра Далглейш Microsoft MVP из Канады. Мы с ней плотно общаемся и я изредка подкидываю ей приемы работы с СТ.    
Насколько я понимаю, строка Application.ScreenUpdating=False никакого отношения к описанной вами проблеме не имеет. Поробуйте проделать то, о чем я говорю в моем предыдущем посте. Прилагаю скриншот.{/post}{/quote}  
 
1)Да, спасибо, сейчас попробую, хотя я не ас в соединениях и СКюЛь  
2)Нет,просто спросить хотел, вашем примере который создают из разных книг СВ, там все таки открываются (и быстро незаметно закрываются) те выбранные книги или нет?
With my best regards,      Inter_E
 
{quote}{login=Inter_E}{date=09.09.2010 10:34}{thema=Re: }{post}1)Да, спасибо, сейчас попробую, хотя я не ас в соединениях и СКюЛь  
2)Нет,просто спросить хотел, вашем примере который создают из разных книг СВ, там все таки открываются (и быстро незаметно закрываются) те выбранные книги или нет?{/post}{/quote}  
1) Там легко, вам надо только адреса файлов подправить.  
2) Нет, при таких подключениях файлы не открывается, данные вытягиваются из закрытой книги.
 
предыдущий пост - мой :)
KL
 
{quote}{login=KL}{date=09.09.2010 11:26}{thema=Re: Re: Re: }{post}предыдущий пост - мой :){/post}{/quote}  
 
А если там в на листе на конкретное имя диапазона ссылаться, так как будет?  
У вас не диапазон а просто [Sheet1$]
With my best regards,      Inter_E
 
{quote}{login=}{date=09.09.2010 11:24}{thema=Re: Re: }{post}{quote}{login=Inter_E}{date=09.09.2010 10:34}{thema=Re: }{post}1)Да, спасибо, сейчас попробую, хотя я не ас в соединениях и СКюЛь  
2)Нет,просто спросить хотел, вашем примере который создают из разных книг СВ, там все таки открываются (и быстро незаметно закрываются) те выбранные книги или нет?{/post}{/quote}  
1) Там легко, вам надо только адреса файлов подправить.  
2) Нет, при таких подключениях файлы не открывается, данные вытягиваются из закрытой книги.{/post}{/quote}  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
With my best regards,      Inter_E
 
2  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
With my best regards,      Inter_E
 
3
With my best regards,      Inter_E
 
4
With my best regards,      Inter_E
 
5  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
With my best regards,      Inter_E
 
6
With my best regards,      Inter_E
 
7
With my best regards,      Inter_E
 
вот все действия отправил, если конечно правильно делал. Но что то не получается..  
Может через TeamViewer через удаленный доступ зайдете, и агент в переписке поможет. Если у вас нет TeamViewer я могу отправить вам на почту...  
Заранее спасибо!
With my best regards,      Inter_E
 
Inter_E, а что - ограничение на размер отменили?
 
{quote}{login=Inter_E}{date=10.09.2010 12:21}{thema=}{post}вот все действия отправил, если конечно правильно делал. Но что то не получается..  
Может через TeamViewer через удаленный доступ зайдете, и агент в переписке поможет. Если у вас нет TeamViewer я могу отправить вам на почту...  
Заранее спасибо!{/post}{/quote}  
Скачал TeamViewer. Что дальше?  
Пока суть да дело...  
Во-первых, если создавать подключение с нуля, то и СТ нужно создавать с нуля на базе нового подключения  
Во-вторых, в свойствах подключения нужно сначала выбрать правильный тип команды (SQL), а затем писать текст подключения.
KL
 
{quote}{login=KL}{date=10.09.2010 12:44}{thema=Re: }{post}{quote}{login=Inter_E}{date=10.09.2010 12:21}{thema=}{post}вот все действия отправил, если конечно правильно делал. Но что то не получается..  
Может через TeamViewer через удаленный доступ зайдете, и агент в переписке поможет. Если у вас нет TeamViewer я могу отправить вам на почту...  
Заранее спасибо!{/post}{/quote}  
Скачал TeamViewer. Что дальше?  
Пока суть да дело...  
Во-первых, если создавать подключение с нуля, то и СТ нужно создавать с нуля на базе нового подключения  
Во-вторых, в свойствах подключения нужно сначала выбрать правильный тип команды (SQL), а затем писать текст подключения.{/post}{/quote}  
 
Доброе утро!  
Извиняюсь, вчера отключился...  
1)Это надо сначало подключение установить, а потом создать СТ?  
У меня уже СТ создана, можно не нее настроить подключение? У меня данная СТ просто так в ручную создается, а не из множества книг, только с одной книги..  
2)А насчет TeamViewer, то сегодня готов подключиться...
With my best regards,      Inter_E
 
Inter_E, я Вам вопрос задал. Не хотите отвечать?
 
{quote}{login=Юрий М}{date=10.09.2010 12:38}{thema=}{post}Inter_E, а что - ограничение на размер отменили?{/post}{/quote}  
 
Добрый день!  
Извиняюсь, заработался.  
Просто у меня стереотип сложился, как будто можно до 130кБ и все. Всегда так путаюсь :-)  
Каждый раз заглядваю в правила, просто раньше такого не было 2г назад. Теперь запомнил, 100Кб, 100Кб, 100Кб, 100Кб ..... :))  
С уважением, Inter_E
With my best regards,      Inter_E
 
{quote}{login=KL}{date=22.08.2010 09:38}{thema=Сводная таблица из множества книг}{post}Сразу извиняюсь за то, что это не вопрос :-) Просто несколько дней    
...  
и в нем нет проверок на ошибки.  
Все тоже самое можно сделать и без VBA, создав подсоединение и команду SQL вручную.{/post}{/quote}  
 
На счет подключений вроде справился, норма.  
Теперь вопрос:  
Вот в вашем примере если сослаться на конкретный диапазон в каждой книге, у всех они одинаково называваются и структура одинаковая  
Где это можно добавить в коде vba?
With my best regards,      Inter_E
 
{quote}{login=Inter_E}{date=10.09.2010 07:18}{thema=Re: Re: }{post}Доброе утро!  
Извиняюсь, вчера отключился...  
1)Это надо сначало подключение установить, а потом создать СТ?  
У меня уже СТ создана, можно не нее настроить подключение? У меня данная СТ просто так в ручную создается, а не из множества книг, только с одной книги..  
2)А насчет TeamViewer, то сегодня готов подключиться...{/post}{/quote}  
1) Здесь что-то не то :-) Может вы создали СТ в книге, используя диапазон из нее же (т.е. не используя подключения к внешним данным), а потом скопировали СТ в другую книгу? Если первая часть моего вопроса верна, то, думаю, нужно изменить диапазон через "Изменить источник данных", а не через подключение. Насколько я понимаю, подключение бы скопировалось вместе с СТ, если бы оно существовало в исходной книге.  
2) Если хотите в 14:00 по Москве, могу взглянуть на ваш файл по TeamViewer, но, я так понимаю, вы должны мне дать код сессии и пароль.
KL
Страницы: 1 2 След.
Наверх