Страницы: 1
RSS
Вытянуть данные из 500 файлов
 
Подскажите как вытянуть 1 ячейку из 500 файлов и сделать из этих данных таблиц
Например:
У меня есть файлы в ячейке F13 есть надпись, ее необходимо скопировать и вставить в таблицу и так каждый файл по очереди.
По итогу должно получится 501 строка с данными ячейки F13.
Не могу найти ничего подходящего.
Изменено: tim2172 - 14.01.2021 18:03:30
 
Цитата
tim2172 написал:
Не могу найти ничего подходящего
и не удивительно, проскакивал тут макрос, но он был предназначен для работы с 498 файлами и там было не копировать, а удалять

а серьезно, как вы думаете прочитав ваше описание задачи, сможет хоть кто-нибудь сесть и написать подходящий вам макрос?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,а в чем непонятность?
из 500 файлов вытащить 1 ячейку и составить из нее список как на скрине.
 
Цитата
tim2172 написал: У меня есть файл в ячейке F13 есть надпись
Это у Вас есть. В теме не хотите пример показать, в котором можо написать макрос?
 
Наименования файлов имеют систему?
По вопросам из тем форума, личку не читаю.
 
БМВ, да имеют, но я полагал что достаточно выделения файлов, и после макрос проходил бы их как тут
Скрытый текст

а так идут по порядку от 08-3418.xlsm по 08-3818.xlsm
Шаблон - файл откуда надо взять данные и таблица куда надо списком вставить  
Изменено: tim2172 - 14.01.2021 16:29:50
 
Цитата
tim2172 написал:
а в чем непонятность?
о, извините, все понятно, просто я такой непонятливый
откройте файл
жмите Alt+F8
найдите и выполните AddFromF13
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,Прошу прощения, я не совсем понимаю как работает, из файла не берет данные, да и массово нельзя выделить файлов
 
что значит не берет данные? (а для чего ж я это писал,  именно для того чтобы взять данные с ячейки Ф13 первого листа  КАЖДОГО выбранного файла)
файлы выбирали?
хоть одно значение помните? скопируйте его и нажмите поиск после того, как выполнили макрос
или можете сделать поиск * прямо сейчас
нашли значения?
Изменено: Ігор Гончаренко - 14.01.2021 17:11:40
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Простите, но мне не надо найти данные, а взять 500 по сути (шаблонов) файлов, из каждого файла взять ячейку F13 скопировать и вставить в другую таблицу по очереди.
в итоге должен получится список данных (500 строчек данных).
Изменено: tim2172 - 14.01.2021 17:18:26
 
запускайте макрос
выберите 500 файлов
получите список из 500 значений
выберите 2-3 файл получите список из 2-3 значений, что не так?
2-3 файла выбирали?
ищите  полученный список в Листе1 высланного мною файла СобратьДанныеСФ13 (поиск это Ctrl+F ищите звездочку *)
данные из какого из выбранных вами файлов не попали в список? какого из выбранных?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
запускайте макросвыберите 500 файлов
он дает выбрать только 1 файл при запуске, точнее после выбора 1 файла, предлагает выбрать следующий, а общим скоопом не дает  
Изменено: tim2172 - 14.01.2021 17:31:52
 
посмотрите сообщение №1, где там написано про общий скоп?
1. мой макрос позволяет собрать данные с 500 файлов? да  / нет ?
2. список из них формирует да / нет ?
я даже над списком добавил слово Address)))
что вам еще?
Изменено: Ігор Гончаренко - 14.01.2021 17:50:03
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
1. мой макрос позволяет собрать данные с 500 файлов? да  / нет ?
нет, я могу выбрать 1 файл только, после он запрашивает следующий если прервать, пишет собрано 1 значение, но в файле пусто

Цитата
Ігор Гончаренко написал:
2. список из них формирует да / нет ?
нет, не копирует данные

тут нет стобца адрес, макрос есть, но он не отрабатывает
Изменено: tim2172 - 14.01.2021 18:02:18
 
а если поискать? (Ctrl+F, Address или просто *)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, да нашел, то есть надо выбирать по 1 штуке, 500 раз?
 
Помещаете все свои 500 файлов в отдельную папку.
Берете код отсюда: Просмотреть все файлы в папке

слегка его модифицируете:
Код
Sub Get_All_File_from_Folder()
    Dim sFolder As String, sFiles As String
    Dim wb As Workbook
    Dim rres As Range
    'диалог запроса выбора папки с файлами
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    'отключаем обновление экрана, чтобы наши действия не мелькали
    Application.ScreenUpdating = False
    Set rres = ActiveSheet.Range("B1")
    sFiles = Dir(sFolder & "*.xls*")
    Do While sFiles <> ""
        'открываем книгу
        Set wb = Application.Workbooks.Open(sFolder & sFiles)
        'действия с файлом
        'Запишем на первый лист книги в ячейку А1 - www.excel-vba.ru
        rres.Offset(1).Value = wb.Sheets(1).Range("F13").Value
        'Закрываем книгу с сохранением изменений
        wb.Close True 'если поставить False - книга будет закрыта без сохранения
        Set rres = rres.Offset(1)
        sFiles = Dir
    Loop
    'возвращаем ранее отключенное обновление экрана
    Application.ScreenUpdating = True
End Sub
все готово
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Вариант на PQ для сбора данных с 500 файлов.
необходимо положить его в ту же папку.
 
Спасибо всем огромное за помощь в особенности Дмитрий(The_Prist) Щербаков, сработало  
 
Цитата
Ігор Гончаренко написал:
1. мой макрос позволяет собрать данные с 500 файлов? да  / нет ?
Цитата
tim2172 написал:
нет, я могу выбрать
откровенная ложь. позволяет с любого количества файлов и с 500 тоже может

Цитата
Ігор Гончаренко написал:
2. список из них формирует да / нет ?
Цитата
tim2172 написал:
нет, не копирует данные
откровенная ложь. макрос формирует список из данных ячеек Ф13 с первых листов всех выбранных файлов
что ж вы так неаккуратно? со словами???
просто когда я просил уточнить зздачу, вы мне ответили:
Цитата
tim2172 написал:
а в чем непонятность?
теперь видите в чем непонятность?
кстати сформированный макросом список на скрине из сообщения 16, почти такой же как на скрине из сообщения 1. т.е. список как список, что с него взять
а сейчас понимаете в чем непонятность вашего первого скрина? а сразу не понятно, что он совершенно не информативен?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я полагал что можно макросом просто вставит ссылки и значения потом
На базе кода дмитрия.
Код
Sub Get_All_File_from_Folder()
    Dim sFolder As String, sFiles As String
    Dim wb As Workbook
    Dim rres As Range
    'диалог запроса выбора папки с файлами
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    'отключаем обновление экрана, чтобы наши действия не мелькали
    Application.ScreenUpdating = False
    Set rres = ActiveSheet.Range("B1")
    sFiles = Dir(sFolder & "*.xls*")
    Do While sFiles <> ""
        With rres.Offset(1)
            .Formula = "='" & sFolder & "[" & sFiles & "]карточка'!$F$13"
            .Value = .Value
        End With
        Set rres = rres.Offset(1)
        sFiles = Dir
    Loop
    'возвращаем ранее отключенное обновление экрана
    Application.ScreenUpdating = True
End Sub
По вопросам из тем форума, личку не читаю.
 
Ігор Гончаренко, там в файле
Код
MultiSelect:=False)

P.S. я код и не досмотрел :)
Хотя конечно можно и так, юридически всё верно :)
Изменено: Hugo - 14.01.2021 20:47:23
Страницы: 1
Наверх