Коллеги, доброе утро! Подскажите пожалуйста как поступить, так как с EXCEL на ВЫ. Есть Файл (INFO), в который нужно заносить данные за каждый день. Данные подтягиваются из других файлов EXCEL, которые создаются в папках каждый день. Данных каждый день в итоговую таблицу (INFO) заносить нужно много, поэтому руками очень долго. Как то можно этот процесс автоматизировать? Например проверка на создание папки, и если она есть подтягивать из нее данные? Через массив? Может направите через что это можно реализовать? Спасибо!
Коллеги, доброе утро! Подскажите пожалуйста как поступить, так как с EXCEL на ВЫ. Есть Файл (INFO), в который нужно заносить данные за каждый день. Данные подтягиваются из других файлов EXCEL, которые создаются в папках каждый день. Данных каждый день в итоговую таблицу (INFO) заносить нужно много, поэтому руками очень долго. Как то можно этот процесс автоматизировать? Например проверка на создание папки, и если она есть подтягивать из нее данные? Через массив? Может направите через что это можно реализовать? Спасибо!puz27
Здесь явно работа для функции ДВССЫЛ, но она работает только с открытыми книгами, поэтому в Вашем случае можно, но формулами замахаетесь это делать По идее макрос, но, если "на ВЫ", то ну его - мы-то Вам напишем, но чуть чего поменять нужно - и что Вы делать будуте? Поэтому предлагаю Вам почитать про Power Query. Там все просто (Вам в дебри лезть не нужно, Вам просто собрать данные из файлов) и информации море https://yandex.ru/search....20query
Здесь явно работа для функции ДВССЫЛ, но она работает только с открытыми книгами, поэтому в Вашем случае можно, но формулами замахаетесь это делать По идее макрос, но, если "на ВЫ", то ну его - мы-то Вам напишем, но чуть чего поменять нужно - и что Вы делать будуте? Поэтому предлагаю Вам почитать про Power Query. Там все просто (Вам в дебри лезть не нужно, Вам просто собрать данные из файлов) и информации море https://yandex.ru/search....20query_Boroda_
Спасибо! С vbs я работал и макросы иногда пишу, просто очень простые. Если направите, как сделать через макрос - было бы здорово! А по поводу Power query - буду читать! Спасибо!
Спасибо! С vbs я работал и макросы иногда пишу, просто очень простые. Если направите, как сделать через макрос - было бы здорово! А по поводу Power query - буду читать! Спасибо!puz27
Такой простенький вариант замены путей в формулах. Без открытия файлов-источников Папки с данными должны лежать по той же логике, как у Вас в примере [vba]
Код
Sub tt() r0_ = 1 c0_ = 2 nr_ = Cells(Rows.Count, c0_).End(3).Row - r0_ + 1 nc_ = Cells(r0_, Columns.Count).End(1).Column - c0_ + 1 ar = Cells(r0_, c0_).Resize(nr_, nc_) put_ = ThisWorkbook.Path aps_ = Application.PathSeparator If Right(put_, 1) <> aps_ Then put_ = put_ & aps_ End If For i = 2 To nr_ For j = 2 To nc_ ar(i, j) = "='" & put_ & Format(ar(1, j), "MM") & aps_ & Format(ar(1, j), "\[DD.MM.YYYY.xl\sx\]") & app_ & ar(i, 1) Next j Next i With Cells(r0_, c0_).Resize(nr_, nc_) .Value = ar .Value = .Value 'стереть если нужно оставить формулы End With End Sub
[/vba]
Такой простенький вариант замены путей в формулах. Без открытия файлов-источников Папки с данными должны лежать по той же логике, как у Вас в примере [vba]
Код
Sub tt() r0_ = 1 c0_ = 2 nr_ = Cells(Rows.Count, c0_).End(3).Row - r0_ + 1 nc_ = Cells(r0_, Columns.Count).End(1).Column - c0_ + 1 ar = Cells(r0_, c0_).Resize(nr_, nc_) put_ = ThisWorkbook.Path aps_ = Application.PathSeparator If Right(put_, 1) <> aps_ Then put_ = put_ & aps_ End If For i = 2 To nr_ For j = 2 To nc_ ar(i, j) = "='" & put_ & Format(ar(1, j), "MM") & aps_ & Format(ar(1, j), "\[DD.MM.YYYY.xl\sx\]") & app_ & ar(i, 1) Next j Next i With Cells(r0_, c0_).Resize(nr_, nc_) .Value = ar .Value = .Value 'стереть если нужно оставить формулы End With End Sub