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

Вход

Регистрация

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

 

= Мир MS Excel/Сводная таблица из 7 файлов - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сводная таблица из 7 файлов
КоТъ Дата: Понедельник, 09.09.2013, 12:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Прошу помощи у знающих людей.

Есть 7 файлов. В каждом файле лист. На листе таблица (пример во вложение. кол-во столбцов во всех файлах одинаковые).
В таблицах данные (в строках) постоянно добавляются и изменяются.
Вручную сводить (копипастить) уже надоело.
Как можно в автоматическом режиме их можно свести в отдельный файл? (т.е. при добавлении инфы в файлы (во все 7 штук, в сводном файле инфа автоматически менялась).
К сожалению Excel практически не знаю :(
Если можно, разжевано объяснить, для тех кто в танке, как это все можно автоматизировать :)

Спасибо!
С уважением, Михаил.
К сообщению приложен файл: 30.xlsx (17.6 Kb)
 
Ответить
СообщениеДобрый день.
Прошу помощи у знающих людей.

Есть 7 файлов. В каждом файле лист. На листе таблица (пример во вложение. кол-во столбцов во всех файлах одинаковые).
В таблицах данные (в строках) постоянно добавляются и изменяются.
Вручную сводить (копипастить) уже надоело.
Как можно в автоматическом режиме их можно свести в отдельный файл? (т.е. при добавлении инфы в файлы (во все 7 штук, в сводном файле инфа автоматически менялась).
К сожалению Excel практически не знаю :(
Если можно, разжевано объяснить, для тех кто в танке, как это все можно автоматизировать :)

Спасибо!
С уважением, Михаил.

Автор - КоТъ
Дата добавления - 09.09.2013 в 12:29
Hugo Дата: Понедельник, 09.09.2013, 14:48 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3858
Репутация: 815 ±
Замечаний: 0% ±

365
Не понятно какой именно результат нужен.
Как варианты:
1. В сводном 7 листов, каждый простым "=" тянет данные из своего файла.
2. Подключить все эти файлы как источник внешних данных для этих листов, обновлять при открытии файла.
з. Подключить все эти файлы как источник внешних данных к Access, там запросом получать сводную таблицу.
4. Макросом при открытии сводного файла получать данные из этих файлов, далее помещать их куда и как угодно (как - задача не известна).

Только эти данные не будут "при добавлении инфы в файлы (во все 7 штук, в сводном файле инфа автоматически менялась" - это будет происходить только при открытии/срабатывании механизма и из сохранённых файлов.
Если нужно "при добавлении инфы автоматически" - переводите всё в одну базу Access с общим доступом к этой базе.
Ну или можно там разграничить права - 7 человек видят/правят только свои записи, 8-ой видит всё.
Но это уже к спецам по Access, я в нём мало работал.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНе понятно какой именно результат нужен.
Как варианты:
1. В сводном 7 листов, каждый простым "=" тянет данные из своего файла.
2. Подключить все эти файлы как источник внешних данных для этих листов, обновлять при открытии файла.
з. Подключить все эти файлы как источник внешних данных к Access, там запросом получать сводную таблицу.
4. Макросом при открытии сводного файла получать данные из этих файлов, далее помещать их куда и как угодно (как - задача не известна).

Только эти данные не будут "при добавлении инфы в файлы (во все 7 штук, в сводном файле инфа автоматически менялась" - это будет происходить только при открытии/срабатывании механизма и из сохранённых файлов.
Если нужно "при добавлении инфы автоматически" - переводите всё в одну базу Access с общим доступом к этой базе.
Ну или можно там разграничить права - 7 человек видят/правят только свои записи, 8-ой видит всё.
Но это уже к спецам по Access, я в нём мало работал.

Автор - Hugo
Дата добавления - 09.09.2013 в 14:48
КоТъ Дата: Понедельник, 09.09.2013, 15:27 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo, добрый день!

Нужен следующий результат:
При открытии файла (где будет сводная таблица) скрипт/макрос выполняет операцию - тянет инфо из 7 файлов (т.е. 7 файлов таких, как во вложение первого сообщения)
Как пример во вложение 7 файлов и один сводный файл (вот это нужно автоматизировать) :)
К сообщению приложен файл: 1_7_.rar (91.8 Kb)
 
Ответить
СообщениеHugo, добрый день!

Нужен следующий результат:
При открытии файла (где будет сводная таблица) скрипт/макрос выполняет операцию - тянет инфо из 7 файлов (т.е. 7 файлов таких, как во вложение первого сообщения)
Как пример во вложение 7 файлов и один сводный файл (вот это нужно автоматизировать) :)

Автор - КоТъ
Дата добавления - 09.09.2013 в 15:27
Michael_S Дата: Понедельник, 09.09.2013, 16:19 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Что должно быть в сводном в полях "Год выпуска" и "Примечания", ежели в исходных что-то будет?
 
Ответить
СообщениеЧто должно быть в сводном в полях "Год выпуска" и "Примечания", ежели в исходных что-то будет?

Автор - Michael_S
Дата добавления - 09.09.2013 в 16:19
КоТъ Дата: Понедельник, 09.09.2013, 16:48 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Что должно быть в сводном в полях "Год выпуска" и "Примечания", ежели в исходных что-то будет?

там будет любой текст
если это проблема, то эти столбцы можно убрать и не брать в расчет.
 
Ответить
Сообщение
Что должно быть в сводном в полях "Год выпуска" и "Примечания", ежели в исходных что-то будет?

там будет любой текст
если это проблема, то эти столбцы можно убрать и не брать в расчет.

Автор - КоТъ
Дата добавления - 09.09.2013 в 16:48
Hugo Дата: Понедельник, 09.09.2013, 17:38 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3858
Репутация: 815 ±
Замечаний: 0% ±

365
Файлы положил в D:\TMP\3\КоТъ\

Код в модуль книги:

[vba]
Код
Private Sub Workbook_Open()
       update
End Sub
[/vba]
В стандартный модуль:

[vba]
Код
Option Explicit

Sub update()
       Dim sh As Worksheet, i&, a()

       Application.ScreenUpdating = False

       Sheets(1).UsedRange.Offset(1).Clear

       Set sh = Sheets.Add(, Sheets(Sheets.Count))
          
       With sh
           For i = 1 To 7
               With .QueryTables.Add(Connection:=Array( _
                      "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=D:\TMP\3\КоТъ\" & i & ".xlsx;Mode=Share Deny Write;Extended Proper" _
                      , _
                      "ties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;" _
                      , _
                      "Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Databas" _
                      , _
                      "e Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=Fal" _
                      , "se;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), _
                      Destination:=sh.Range("A1"))
                   .CommandType = xlCmdTable
                   .CommandText = Array("Лист1$")
                   .Name = "1"
                   .FieldNames = True
                   .RowNumbers = False
                   .FillAdjacentFormulas = False
                   .PreserveFormatting = True
                   .RefreshOnFileOpen = False
                   .BackgroundQuery = True
                   .RefreshStyle = xlInsertDeleteCells
                   .SavePassword = False
                   .SaveData = True
                   .AdjustColumnWidth = True
                   .RefreshPeriod = 0
                   .PreserveColumnInfo = True
                   .Refresh BackgroundQuery:=False
               End With

               With sh
                   a = Range(.[h4], .[c3].End(xlDown)).Value
                   .UsedRange.ClearContents
               End With
               With Worksheets(1)
                   .Cells(.Rows.Count, "B").End(xlUp)(2).Resize(UBound(a), 6).Value = a
               End With

           Next
       End With

       Application.DisplayAlerts = False
       sh.Delete
       Application.DisplayAlerts = True
       Application.ScreenUpdating = True
          
End Sub
[/vba]

Т.к. у меня тут 2003 - тренировался на паре тройке xls, но думаю и с xlsx должно сработать.
Вся эта длинная "простыня" "With .QueryTables.Add..." записана рекордером и я там почти ничего не трогал - только убрал в конце ссылку на файл и скорректировал адрес для изменения в цикле.
Если не заработает - запишите подключение к данным у себя, затем используйте свою "простыню".
Готовый файл сейчас не покажу - работа...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеФайлы положил в D:\TMP\3\КоТъ\

Код в модуль книги:

[vba]
Код
Private Sub Workbook_Open()
       update
End Sub
[/vba]
В стандартный модуль:

[vba]
Код
Option Explicit

Sub update()
       Dim sh As Worksheet, i&, a()

       Application.ScreenUpdating = False

       Sheets(1).UsedRange.Offset(1).Clear

       Set sh = Sheets.Add(, Sheets(Sheets.Count))
          
       With sh
           For i = 1 To 7
               With .QueryTables.Add(Connection:=Array( _
                      "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=D:\TMP\3\КоТъ\" & i & ".xlsx;Mode=Share Deny Write;Extended Proper" _
                      , _
                      "ties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;" _
                      , _
                      "Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Databas" _
                      , _
                      "e Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=Fal" _
                      , "se;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), _
                      Destination:=sh.Range("A1"))
                   .CommandType = xlCmdTable
                   .CommandText = Array("Лист1$")
                   .Name = "1"
                   .FieldNames = True
                   .RowNumbers = False
                   .FillAdjacentFormulas = False
                   .PreserveFormatting = True
                   .RefreshOnFileOpen = False
                   .BackgroundQuery = True
                   .RefreshStyle = xlInsertDeleteCells
                   .SavePassword = False
                   .SaveData = True
                   .AdjustColumnWidth = True
                   .RefreshPeriod = 0
                   .PreserveColumnInfo = True
                   .Refresh BackgroundQuery:=False
               End With

               With sh
                   a = Range(.[h4], .[c3].End(xlDown)).Value
                   .UsedRange.ClearContents
               End With
               With Worksheets(1)
                   .Cells(.Rows.Count, "B").End(xlUp)(2).Resize(UBound(a), 6).Value = a
               End With

           Next
       End With

       Application.DisplayAlerts = False
       sh.Delete
       Application.DisplayAlerts = True
       Application.ScreenUpdating = True
          
End Sub
[/vba]

Т.к. у меня тут 2003 - тренировался на паре тройке xls, но думаю и с xlsx должно сработать.
Вся эта длинная "простыня" "With .QueryTables.Add..." записана рекордером и я там почти ничего не трогал - только убрал в конце ссылку на файл и скорректировал адрес для изменения в цикле.
Если не заработает - запишите подключение к данным у себя, затем используйте свою "простыню".
Готовый файл сейчас не покажу - работа...

Автор - Hugo
Дата добавления - 09.09.2013 в 17:38
КоТъ Дата: Понедельник, 09.09.2013, 17:56 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo,
Спасибо большое, но если честно, то я не фига не понял, куда это все сувать :D :D
 
Ответить
СообщениеHugo,
Спасибо большое, но если честно, то я не фига не понял, куда это все сувать :D :D

Автор - КоТъ
Дата добавления - 09.09.2013 в 17:56
Michael_S Дата: Понедельник, 09.09.2013, 17:59 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Добавьте в папку недостающие файлы - удалил, т.к. размер архива превышает допустимый.

...сортировку не делал.
К сообщению приложен файл: 1_7-1-.rar (56.5 Kb)


Сообщение отредактировал Michael_S - Понедельник, 09.09.2013, 18:01
 
Ответить
СообщениеДобавьте в папку недостающие файлы - удалил, т.к. размер архива превышает допустимый.

...сортировку не делал.

Автор - Michael_S
Дата добавления - 09.09.2013 в 17:59
Hugo Дата: Понедельник, 09.09.2013, 18:01 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3858
Репутация: 815 ±
Замечаний: 0% ±

365


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение"Сувать" сюда:
http://www.excelworld.ru/publ/vba/first_step/excel_macro/39-1-0-114

Автор - Hugo
Дата добавления - 09.09.2013 в 18:01
Hugo Дата: Понедельник, 09.09.2013, 18:11 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3858
Репутация: 815 ±
Замечаний: 0% ±

365
У Михаила вариант с суммированием количества, и написан совершенно иначе.
А мой вариант просто складывает данные как есть одни под другими.
У Михаила интереснее :) И сложнее.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеУ Михаила вариант с суммированием количества, и написан совершенно иначе.
А мой вариант просто складывает данные как есть одни под другими.
У Михаила интереснее :) И сложнее.

Автор - Hugo
Дата добавления - 09.09.2013 в 18:11
КоТъ Дата: Вторник, 10.09.2013, 15:01 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo, Michael_S,
Большое Вам спасибо!

Hugo
К сожалению Ваш код у меня так и не получилось запустить.

Michael_S
Подставил 7 файлов и о чудо все заработало! hands
Посмотрел в код, но ни хрена не понял, откуда что берется :D

Еще раз большое спасибо! :)
 
Ответить
Сообщение Hugo, Michael_S,
Большое Вам спасибо!

Hugo
К сожалению Ваш код у меня так и не получилось запустить.

Michael_S
Подставил 7 файлов и о чудо все заработало! hands
Посмотрел в код, но ни хрена не понял, откуда что берется :D

Еще раз большое спасибо! :)

Автор - КоТъ
Дата добавления - 10.09.2013 в 15:01
  • Страница 1 из 1
  • 1
Поиск:

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