Страницы: 1
RSS
Даты изменения нескольких файлов Excel списком.
 
Прошу подсказать как можно получить перечень дат изменения (последнего сохранения) файлов Excel. Файлы находятся группами в разных подпапках. Список дат необходимо получить один, на одном листе. Возможен макрос, идеально - если все-таки есть готовая функция Excel (не нашел).
Изменено: d74 - 13.08.2014 10:26:12
 
Файл покажите с перечнем путей и маски обрабатываемых файлов и результатом ручным.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
файл добавил
 
"Место нахождения файла" должно быть именно ссылкой или просто текст устроит?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
В общем поискал за Вас по форуму.[spoiler]http://excelvba.ru/code/FilenamesCollection
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=55635&TITLE_SEO=55635&MID=463521&tags=&q=dir&FORUM_ID%5B0%5D=1&DATE_CHANGE=0&order=relevance&s=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8#message463521[/SPOILER]

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Там будет просто текст, вбитый руками. Пути привел на случай, если есть разница между локальным расположением и сетевым. Нужны только обновляемые по необходимости даты. Кстати, не осознал как их обновлять. Либо при открытии/сохранении книги, либо еще как (?).

Да, не сообразил существенный, наверное, момент. Иногда файлы бывают с расширением xlsx. Причем, пользователи могут изменить его спонтанно. При использовании формул связи меняются быстро через меню эксель. Возможно ли такое при использовании макроса?
Изменено: d74 - 13.08.2014 10:37:21
 
Цитата
JayBhagavan пишет:
В общем поискал за Вас по форуму.
Пардон, не осознал - там вроде как другой вопрос обсуждался.
 
d74, несомненно, вопрос другой, но принципиальная часть там отражена. На основании той ссылки макрос.
Код
Sub files_list_with_date_edit()
    Path = "C:\"
    Name = Dir(Path & "*.xls*")
    varRowStart = ActiveSheet.UsedRange.Rows.Count + 1
    varCounter = 0
    Do
        Cells(varRowStart + varCounter, 1).Value = Name
        Cells(varRowStart + varCounter, 2).Value = FileDateTime(Path & Name)
        varCounter = varCounter + 1
        Name = Dir
    Loop Until Name = ""
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan пишет:
d74 , несомненно, вопрос другой, но принципиальная часть там отражена. На основании той ссылки макрос.
Настораживают меня конкретные пути и пустые синие кавычки - видимо, потребует адаптации, а начальный курс VBA у меня десятилетней давности. JayBhagavan спасибо за участие.
Изменено: d74 - 13.08.2014 14:46:47
 
d74, так это и есть подсказка. В примере нет списка для поиска. Я в ВБА не спец. Для постижения ВБА на примерах подключаюсь к не сложным вопросам. А доработать, как Вы хотите, думаю будет не слишком трудно, если организовать базовую таблицу по полной программе.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
d74 пишет: Настораживают меня конкретные пути и пустые синие кавычки
он (макрос) просто перебирает файлы (в папке Dir(Path & "*.xls*") с расширением xls) до момента пока файлы не закончатся... т е уже " " нечего перебирать
Изменено: JeyCi - 13.08.2014 18:25:49
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
выдает ошибку, скрин приложил
и непонятно куда он должен записывать даты, куда подставить нужный мне лист и диапазон клеток
 
Цитата
d74 пишет: перечень дат изменения (последнего сохранения) файлов Excel
может кодовые строки отсюда (пост#7) натолкнут на путь...  переменная t - вроде вам нужна... её как-нибудь и вытяните в ячейку (как вариант)
Изменено: JeyCi - 13.08.2014 23:14:41
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
d74 пишет: и непонятно куда он должен записывать даты, куда подставить нужный мне лист и диапазон клеток
всё в коде: лист ActiveSheet - на активный... даты он записывает в Cells... если лист пустой и ничего не появляется - поставьте хоть какую точку хоть в какую ячейку - т к он оценивает UsedRange - на пустом листе у него может нет ориентира... или надо править код - с ходу не подскажу - не знаю ваш случай... иначе конкретно по вашей ошибке - затрудняюсь ответить...- (не может установить режим "только чтение")... а может потому что они (файлы) у вас в сети...
Изменено: JeyCi - 13.08.2014 23:54:43
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Path - свойство рабочей книги, только для чтения. А Вы пытаетесь его изменить. Вот и ошибка.
Измените имя переменной Path на не зарезервированное. Например sPath. И код поместите в стандартный модуль, а не в ЭтаКнига.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Прошу подсказать как можно получить перечень дат изменения
Откройте файл, в ячейке С1 дважды кликните мышкой и будет Вам счастье. Файл нашел здесь . Автор: EducatedFool (Игорь), в файле это написано., Кое что я переделал под себя, для удобства . Думаю автор не обидится. Соберите списки из всех подпапок на лист, после копируйте его куда хотите.
Изменено: gling - 14.08.2014 01:17:02
 
gling, похоже что-то близкое выходит. Спасибо.  
Страницы: 1
Наверх