Страницы: 1
RSS
Определить и открыть последний файл по дате создания (по времени) из папки
 
Добрый день,  Уважаемые Форумчане!

Подскажите, пожалуйста, в каком направлении двигаться:

Есть отчет с отгрузками, который нужно обновлять ежедневно на основании исходного отчета из 1с.
Есть Папка на локальном диске сервера, в которую ежедневно выгружается исходный отчет из 1с на текущую Дату. (Отчеты за предыдущие даты так же хранятся в папке)

Нужно сделать так, чтобы отчет с отгрузками обновлялся к 9.00 ежедневно, на основании последнего выгруженного исходного отчета в папку. Реально ли это воплотить в жизнь ? Может уже были подобные темы на форуме? Буду очень благодарна, если подскажите куда смотреть или предложите варианты решения задачки!

Спасибо!
 
К определенному времени... https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=123991&a...

Какой механизм обновления отчета из файла 1С? Подробнее ... с файлами примеров. Текущая задача по более поздней дате, а как ранее обновляли? Связь по формулам не получится, если имя файла из 1С каждый раз другое? Макрос поиска файлов 1С и открытия с копированием данных из папки?
Изменено: Marat Ta - 02.03.2021 14:05:45
 
1. Сейчас делаю руками ,  Копирую данные из исходного файла и вставляю в заготовку шаблона.
2. Имя файла каждый день меняется. Вот пример имени: "2021_3_2 08.03  Отгрузки со склада 02 марта 2021" - изменяется дата отчета. В этом и есть основная проблема. Не знаю как зацепиться за новый выгруженный файл
Изменено: Марто - 02.03.2021 14:41:54
 
Без файлов примеров нет ясности.
Изменено: Marat Ta - 02.03.2021 15:02:22
 
Марто, вот ЗДЕСЬ есть макрос в #7, его чуть исправить и добавить открытие файла, копирование новых данных в ваш отчет и все.
Код
Sub get_first_created()
Dim myPath$, mask$, f$, i%, t As Date
Dim myFolder As Object, myFile As Object
myPath = "C:\Users\123\Desktop\123\" ' директория для поиска
mask = "*.xlsx" ' маска поиска с * и ?
With CreateObject("Scripting.FileSystemObject")
    Set myFolder = .GetFolder(myPath)
    t = DateAdd("h", 9, Date) ' если ищем самый поздний - убрать эту строку
    For Each myFile In myFolder.Files
        If myFile.Name Like mask Then
            If CDate(myFile.DateCreated) > t Then  ' если ищем самый ранний, то  <, самый поздний  - >
                t = CDate(myFile.DateCreated)
                f = myFile.Name
            End If
        End If
    Next
End With
Workbooks.Open myPath & f
With ActiveWorkbook
    'часть кода которая берет нужные данные для отчета или что-то делает
    .Close SaveChanges:=False 'закрываем открытую книгу
End With
End Sub
т.е. в том коде заменить путь на свой и строку
Код
t = Now ' если ищем самый поздний - убрать эту строку
заменить на
Код
t = DateAdd("h", 9, Date)
Изменено: Mershik - 02.03.2021 15:19:56
Не бойтесь совершенства. Вам его не достичь.
 
Ссылка ведет на эту тему
 
Марто,  Спасибо изменил

пы.сы. вы бы обращение ставили понятнее становится кому Вы пишите.
Не бойтесь совершенства. Вам его не достичь.
 
 Файлы примеров
Изменено: Марто - 02.03.2021 15:21:53
 
Цитата
Марто написал:
Не знаю как зацепиться за новый выгруженный файл
выше предложил, что не вышло?
да и тема странная (название ее)
Тема: Определить и открыть последний файл по дате создания (по времени) из папки
Изменено: Mershik - 02.03.2021 15:27:59
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо большое, это как раз то что нужно!!
все работает !)
Страницы: 1
Наверх