Страницы: 1
RSS
Макрос дата в определенной ячейке
 
Здравствуйте
Всех с Новым годом и Рождеством!

Есть файл Заказы.xlsm
Мы открываем его и сохраняем в формате Заказы ГГММДД.xlsm.
Необходим макрос, который будет забирать дату из названия файла и вставлять в конкретную ячейку на конкретном листе в формате ДД.ММ.ГГ.
Данная дата не всегда является текущей и важно чтобы дата вставлялась именно, когда файл переименовывают в формат Заказы ГГММДД.xlsm.

Буду рад помощи.
 
А переименовывают каким способом? В проводнике? Или Сохранить как..?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
DanKZ написал:
чтобы дата вставлялась именно, когда файл переименовывают в формат Заказы ГГММДД.xlsm
А почему именно в этот момент? Почему не в момент открытия файла, например? Ведь при открытии его имя не изменится.
Если абстрагироваться от необходимости получить именно при переименовании - то такое можно сделать даже формулами(ЯЧЕЙКА(CELL)). Такая формула, записанная в ячейке, всегда будет получать актуальные данные об открытом файле :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Sanja написал:
А переименовывают каким способом? В
Сохранить как
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
А почему именно в этот момент? Почему не в момент открытия файла, например?
Я почему-то подумал, что при открытии файла, если сработает макрос, то он не сможет взять дату, потому что ее не будет в названии файла. Из формул рассматривал СЕГОДНЯ(), но нельзя чтобы дата менялась и ЯЧЕЙКА("имяфайла"), но не очень понял, как "перевернуть" дату и поставить точки между днем, месяцем и годом.
 
Цитата
написал:
ЯЧЕЙКА("имяфайла"), но не очень понял, как "перевернуть" дату и поставить точки между днем, месяцем и годом
можно прям даже дату получить. если одной формулой, то так:
Код
=ДАТА("20"&ПСТР(ЯЧЕЙКА("filename";B1);ПОИСК("[Заказы ";ЯЧЕЙКА("filename";B1))+8;2);ПСТР(ЯЧЕЙКА("filename";B1);ПОИСК("[Заказы ";ЯЧЕЙКА("filename";B1))+10;2);ПСТР(ЯЧЕЙКА("filename";B1);ПОИСК("[Заказы ";ЯЧЕЙКА("filename";B1))+12;2))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
можно прям даже дату получить. если одной формулой, то так:

После замены названия файла надо обязательно нажать Пересчет?
 
Цитата
написал:
После замены названия файла надо обязательно нажать Пересчет?
да в общем-то нет - функция ЯЧЕЙКА летучая и пересчитывается при любом изменении в любом листе любого открытого файла Excel, а так же при каждом открытии файла. Но если речь о том, чтобы дата менялась сразу после сохранения - здесь да, надо будет жать пересчет или изменить любую ячейку.
А если у Вас Excel 2010 или новее - то можете добавить в модуль ЭтаКнига такой код:
Код
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Application.Calculate
End Sub
тогда сразу после сохранения ячейка пересчитается и сразу увидите результат. Если есть желание - можно в этот же код внедрить и извлечение даты, но на мой взгляд формула надежнее, т.к. работает даже если выполнение макросов выключено.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх