Страницы: 1
RSS
Построение сводной таблицы из данных нескольких листов по столбцам с одинаковыми названиями
 
Добрый день!  
 
Помогите, пож-та, не могу понять почему макрос не работает в 2010 EXCEL, что нужно заменить, чтобы заработал.  
Очень буду благодарна  
 
 
Sub New_Multi_Table_Pivot()  
   Dim i As Long  
   Dim arSQL() As String  
   Dim objPivotCache As PivotCache  
   Dim objRS As Object  
   Dim ResultSheetName As String  
   Dim SheetsNames As Variant  
   
   'имя листа, куда будет выводиться результирующая сводная  
   ResultSheetName = "Сводная"  
   'массив имен листов с исходными таблицами  
   SheetsNames = Array("FAB", "SIG")  
   
   'формируем кэш по таблицам с листов из SheetsNames  
   With ActiveWorkbook  
       ReDim arSQL(1 To (UBound(SheetsNames) + 1))  
       For i = LBound(SheetsNames) To UBound(SheetsNames)  
           arSQL(i + 1) = "SELECT * FROM [" & SheetsNames(i) & "$]"
       Next i  
       Set objRS = CreateObject("ADODB.Recordset")  
       objRS.Open Join$(arSQL, " UNION ALL "), _  
                  Join$(Array("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=", _  
                              .FullName, ";Extended Properties=""Excel 8.0;"""), vbNullString)  
   End With  
   
   'создаем заново лист для вывода результирующей сводной таблицы  
   On Error Resume Next  
   Application.DisplayAlerts = False  
   Worksheets(ResultSheetName).Delete  
   Set wsPivot = Worksheets.Add  
   wsPivot.Name = ResultSheetName  
   
   'выводим на этот лист сводную по сформированному кэшу  
   Set objPivotCache = ActiveWorkbook.PivotCaches.Add(xlExternal)  
   Set objPivotCache.Recordset = objRS  
   Set objRS = Nothing  
   With wsPivot  
       objPivotCache.CreatePivotTable TableDestination:=wsPivot.Range("A3")  
       Set objPivotCache = Nothing  
       Range("A3").Select  
   End With  
   
End Sub
 
Скорее всего не работает из-за разницы форматов файлов xlsx, xlsb, xlsm  
Нужен другой Provider. Посмотрите на connectionstring.com или поищите функцию здесь для получения строки подключения по формату файла
 
Подскажите, пож, а можно ли в этом макросе зафиксировать кол-во  в листах - мол тянуть только первые семь??? Спрашиваю, т.к. Макрос работает только лишь при наличии одинакового кол-ва столбцов в листах
 
. Ответ на 1 вопрос помог? Если да, то где мне спасибо - я не из техподдержки Microsoft? 2. На 2 вопрос я уже отвечал в отдельно созданной вами теме, но, возможно, в нарушении пункта 4 правил (один вопрос, одна тема), тема по ошибке была удалена модератором. Так что повторяю ответ. Замените * в   Select * на список требуемых названий столцов, для примера [field1],[field2]. Важно, чтобы названия указанных столбцов были одинаковы на всех листах, исходя из особенностей алгоритма формирования строки запроса.
 
Извините, пожалуйста, за мою неблагодарность. Еще не успела проверить решение из Вашего ответа номер 1 и 2.  Пример на работе, а дома нет тех.средств кроме Айфона. Спасибо большое за ответы, обязательно проверю и напишу. Прошу прощения еще раз :)
 
{quote}{login=anvg}{date=25.08.2012 02:29}{thema=}{post} возможно, в нарушении пункта 4 правил (один вопрос, одна тема), тема по ошибке была удалена модератором{/post}{/quote}Что значит "по ошибке"?
 
Светлана  
По 1 пункту, чтобы не было лишних вопросов http://www.planetaexcel.ru/forum.php/?thread_id=32069    
Функция ADO_R_Dmitry  
 
Юрий М  
Первый вопрос в этой теме был  
Помогите, пож-та, не могу понять почему макрос не работает в 2010 EXCEL, что нужно заменить, чтобы заработал.  
Была с этим же макросом и вторая удалённая тема (названия не помню точно, заканчивалась в виде "тяжёлая артиллерия") с вопросом  
Подскажите, пож, а можно ли в этом макросе зафиксировать кол-во в листах - мол тянуть только первые семь???    
Насколько я понимаю: почему не работает и как вывести только нужные столбцы - разные темы, или я не прав?
 
Правы. Но почему по ошибке? В чём я ошибся?
 
anvg, добрый день!  
 
К сожалению не получается добавить в макрос наименования столбцов, которые должны тянуться. Помогите, пожалуйста, на примере приложенном. Пожелания, чтобы тянулся столбец "ФНД/ FA" и "Сумма / Total ammount". Большое спасибо
 
И где там изменения? Без изменения в коде макроса ничего не выйдет.  
Поправил.
 
anvg,  
 
теперь у меня не получается извлечь из Вами приложенного файла инфо :((  
 
если не сложно, будьте, добры отправьте на valgreat @ мэйл ру.  
 
Спасибо.
 
Не открывайте с форума: сохраните на диск с нужным расширением (xlsm), и уже с диска откройте.
 
Всем большое спасибо!!!  
 
Особенно anvg!  
 
Все получилось, макрос работает на ура!
Страницы: 1
Наверх