Доброго дня Сенсеи ) Помогите ламеру ) Финансист дал задачу: имеется 5 файлов xls одновкладочных в одной папке. Нужно создать единый файл, в который будут переноситься листы с этих 5ти файлов (по вкладкам). Например по кнопке "Обновить". Файл1.xls -> лист Файл1 в файле Итог.xls, Файл2.xls -> лист Файл2 в файле Итог.xls и т.п. Короче сводный отчёт из 5ти файлов. Помогите пожалуйста, наверняка у кого-то уже даже есть такие макросы.
Доброго дня Сенсеи ) Помогите ламеру ) Финансист дал задачу: имеется 5 файлов xls одновкладочных в одной папке. Нужно создать единый файл, в который будут переноситься листы с этих 5ти файлов (по вкладкам). Например по кнопке "Обновить". Файл1.xls -> лист Файл1 в файле Итог.xls, Файл2.xls -> лист Файл2 в файле Итог.xls и т.п. Короче сводный отчёт из 5ти файлов. Помогите пожалуйста, наверняка у кого-то уже даже есть такие макросы.stgerrard
Здравствуйте, stgerrard, получение данных из других источников - Ооочень обширная тема... есть Power Query, есть Connections, что вам более приемлемо? есть другие варианты... В чём Вы уже пытались сделать, и что у вас не получилось? Если вы не собираетесь делать сами, то Вам лучше на ФрилансСайты обратиться. или здесь, то же есть.
Здравствуйте, stgerrard, получение данных из других источников - Ооочень обширная тема... есть Power Query, есть Connections, что вам более приемлемо? есть другие варианты... В чём Вы уже пытались сделать, и что у вас не получилось? Если вы не собираетесь делать сами, то Вам лучше на ФрилансСайты обратиться. или здесь, то же есть.
Здравствуйте, boa, Я и "настоящий сварщик" и не претендую на написание данного кода. Я увидел, что на этом форуме люди ПОМОГАЮТ получить нужное решение и пришёл сюда я за помощью. Увидел у одной девушки тут макрос, который позволяет сделать выбор файла и переносит всё содержимое в искомый файл. Это почти то что надо, но это не заменяет ручную работу по выбору много файлов (у меня таких будет около 10) и разницы нет, что делать выбор, что руками копировать лист и вставить в итоговый файл. Хотелось именно решение, которое будет автоматом брать из папки файлы по заданному имени. И по-моему pq и connections тут не нужны будут.
Здравствуйте, boa, Я и "настоящий сварщик" и не претендую на написание данного кода. Я увидел, что на этом форуме люди ПОМОГАЮТ получить нужное решение и пришёл сюда я за помощью. Увидел у одной девушки тут макрос, который позволяет сделать выбор файла и переносит всё содержимое в искомый файл. Это почти то что надо, но это не заменяет ручную работу по выбору много файлов (у меня таких будет около 10) и разницы нет, что делать выбор, что руками копировать лист и вставить в итоговый файл. Хотелось именно решение, которое будет автоматом брать из папки файлы по заданному имени. И по-моему pq и connections тут не нужны будут.stgerrard
Если надо просто скопировать листы целиком из всех файлов в папке, то можно так. В диалоговом окне надо будет выбрать нужную папку [vba]
Код
Sub FilesFromFolder() Dim FolderPath As String, FileName As String, wb As Workbook With Application.FileDialog(msoFileDialogFolderPicker) If .Show = False Then Exit Sub FolderPath = .SelectedItems(1) End With FolderPath = FolderPath & IIf(Right(FolderPath, 1) = "\", "", "\") Application.ScreenUpdating = False FileName = Dir(FolderPath & "*.xls*") Do While FileName <> "" Workbooks.Open FolderPath & FileName Set wb = ActiveWorkbook wb.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) ActiveSheet.Name = Split(FileName, ".")(0) wb.Close False FileName = Dir Loop Application.ScreenUpdating = True End Sub
[/vba]
Если надо просто скопировать листы целиком из всех файлов в папке, то можно так. В диалоговом окне надо будет выбрать нужную папку [vba]
Код
Sub FilesFromFolder() Dim FolderPath As String, FileName As String, wb As Workbook With Application.FileDialog(msoFileDialogFolderPicker) If .Show = False Then Exit Sub FolderPath = .SelectedItems(1) End With FolderPath = FolderPath & IIf(Right(FolderPath, 1) = "\", "", "\") Application.ScreenUpdating = False FileName = Dir(FolderPath & "*.xls*") Do While FileName <> "" Workbooks.Open FolderPath & FileName Set wb = ActiveWorkbook wb.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) ActiveSheet.Name = Split(FileName, ".")(0) wb.Close False FileName = Dir Loop Application.ScreenUpdating = True End Sub