Здравствуйте. Помогите пожалуйста с моей проблемой. По электронной почте присылают файлы (в данном примере файл 0020180713.xls и 0020180714.xls). Названия будут разные (как правило ни, кто не читает ВАЖНО! и обзывают файлы, как получится. Все файлы будут сохранены в один каталог. И вот из этих файлов нужно собрать данные из 5-ти колонок и объединить в одну таблицу файла Свод.xlsx. [offtop]Если это решение будет макросом то перенесите тему в вопросы по VBA.[/offtop]
Здравствуйте. Помогите пожалуйста с моей проблемой. По электронной почте присылают файлы (в данном примере файл 0020180713.xls и 0020180714.xls). Названия будут разные (как правило ни, кто не читает ВАЖНО! и обзывают файлы, как получится. Все файлы будут сохранены в один каталог. И вот из этих файлов нужно собрать данные из 5-ти колонок и объединить в одну таблицу файла Свод.xlsx. [offtop]Если это решение будет макросом то перенесите тему в вопросы по VBA.[/offtop]DrMini
Не хотите попробовать Power Query? Как раз подходит к вашим условиям. Не пугайтесь сразу. Там ничего сложного нет. Я сейчас с его помощью огромными объёмами данных ворочаю постоянно.
Не хотите попробовать Power Query? Как раз подходит к вашим условиям. Не пугайтесь сразу. Там ничего сложного нет. Я сейчас с его помощью огромными объёмами данных ворочаю постоянно.Yurbas
Спасибо но... нет. Не хочется. Не нравятся мне все эти надстройки. А если получится, то я и в другом месте применить это смогу. Ответа не дождался. Установил надстройку Power Query. Всё получилось. Единственно не понравилось, что каждый раз после обновления надо в таблице менять размер колонок и для наглядности, границы ячеек выделять. Может это, как то можно исправить? А может, кто ни будь сжалится и оформит всё это в VBA? Забыл сказать, что помогла вот эта статья. Может кому пригодится.
Спасибо но... нет. Не хочется. Не нравятся мне все эти надстройки. А если получится, то я и в другом месте применить это смогу. Ответа не дождался. Установил надстройку Power Query. Всё получилось. Единственно не понравилось, что каждый раз после обновления надо в таблице менять размер колонок и для наглядности, границы ячеек выделять. Может это, как то можно исправить? А может, кто ни будь сжалится и оформит всё это в VBA? Забыл сказать, что помогла вот эта статья. Может кому пригодится.DrMini
Сообщение отредактировал DrMini - Суббота, 14.07.2018, 10:59
DrMini, привет вот так попробуйте (макрос для книги Свод) [vba]
Код
Sub ertert() Dim Fold As String, f As String, wsh As Worksheet Application.ScreenUpdating = False
Set wsh = ThisWorkbook.Sheets("Data") With wsh.Range("A1").CurrentRegion If .Rows.Count > 1 Then .Offset(1).ClearContents End With Fold = ThisWorkbook.Path If Right(Fold, 1) <> "\" Then Fold = Fold & "\" f = Dir(Fold & "*.xls*", vbNormal)
Do While f <> "" If f <> ThisWorkbook.Name Then With Workbooks.Open(Fold & f) With .Sheets(1).Range("A1").CurrentRegion With .Offset(1).Resize(.Rows.Count - 1) Union(.Columns(1).Resize(, 5), .Columns(7)).Copy wsh.Cells(Rows.Count, 5).End(xlUp)(2, -3) End With End With .Close False End With End If f = Dir() Loop
Application.ScreenUpdating = True End Sub
[/vba]
DrMini, привет вот так попробуйте (макрос для книги Свод) [vba]
Код
Sub ertert() Dim Fold As String, f As String, wsh As Worksheet Application.ScreenUpdating = False
Set wsh = ThisWorkbook.Sheets("Data") With wsh.Range("A1").CurrentRegion If .Rows.Count > 1 Then .Offset(1).ClearContents End With Fold = ThisWorkbook.Path If Right(Fold, 1) <> "\" Then Fold = Fold & "\" f = Dir(Fold & "*.xls*", vbNormal)
Do While f <> "" If f <> ThisWorkbook.Name Then With Workbooks.Open(Fold & f) With .Sheets(1).Range("A1").CurrentRegion With .Offset(1).Resize(.Rows.Count - 1) Union(.Columns(1).Resize(, 5), .Columns(7)).Copy wsh.Cells(Rows.Count, 5).End(xlUp)(2, -3) End With End With .Close False End With End If f = Dir() Loop
nilem, Спасибо за то, что отозвались. В идеале было бы так. Все файлы заливаются в один каталог (ну например D:\Показания) который каждый месяц очищается и туда заливаются новые файлы. Файл Свод лучше поместить в другой каталог и добавить в него кнопку (ну например "Сформировать показания" ли типа того). И при её нажатии загружались бы данные из каталога.
nilem, Спасибо за то, что отозвались. В идеале было бы так. Все файлы заливаются в один каталог (ну например D:\Показания) который каждый месяц очищается и туда заливаются новые файлы. Файл Свод лучше поместить в другой каталог и добавить в него кнопку (ну например "Сформировать показания" ли типа того). И при её нажатии загружались бы данные из каталога.DrMini
Да с выбором заработало. Просто прелесть . Не сочтите за наглость. Можно в последнем столбце "Текущие показания" добавить толстый контур с края? Прилагаю скрин.
Да с выбором заработало. Просто прелесть . Не сочтите за наглость. Можно в последнем столбце "Текущие показания" добавить толстый контур с края? Прилагаю скрин.DrMini
nilem, Сейчас добавил подредактированные шаблоны с заблокированными ячейками (а то там такого понапишут...). На них макрос "спотыкается". Если снимаю защиту всё просто идеально. Посмотрите пожалуйста. Блокировка без пароля.
nilem, Сейчас добавил подредактированные шаблоны с заблокированными ячейками (а то там такого понапишут...). На них макрос "спотыкается". Если снимаю защиту всё просто идеально. Посмотрите пожалуйста. Блокировка без пароля.DrMini
nilem, Доброго времени суток. Ещё раз прошу прощения. После установки защиты на лист с реальным паролем макрос опять начинает "спотыкается" и просит ввести пароль. Можно подправить макрос, что бы он не реагировал на пароль или подставлял какой то заранее прописанный пароль? Пароль будет одинаковый на всех файлах.
nilem, Доброго времени суток. Ещё раз прошу прощения. После установки защиты на лист с реальным паролем макрос опять начинает "спотыкается" и просит ввести пароль. Можно подправить макрос, что бы он не реагировал на пароль или подставлял какой то заранее прописанный пароль? Пароль будет одинаковый на всех файлах.DrMini
Сообщение отредактировал DrMini - Четверг, 19.07.2018, 15:02