Помогите создать макрос, который сохранял файл EXCEL с датой и временем до открытия и изменения файла. Я не понимаю какие нарушения были в предыдушей теме с моей стороны. Обяснения которые запрашивал Саня (ТОЛЬКО БЕЗ ОБИД) Имеется какой-то файл на диске с датой и временем (прописаных в свойствах файла например - 21.11.2010 в 11:02 - в это время он когда-то редактировался (создавался)и сохранился) теперь, я его открываю СЕГОДНЯ - (дата 28 января 2011 года допустив время сейчас 13:53) вношу пару изменений в данные какой-то строки и нажимаю кнопку СОХРАНИТЬ на панели. Файл сохраняется с датой и временем 28.01.2011 и время 13:57, а мне надо чтобы он сохранился со временем и датой предыдущего сохранения т.е. 21.11.2010 в 11:02. По моему я объяснил БОЛЕЕ подробно что НАДО.
Помогите создать макрос, который сохранял файл EXCEL с датой и временем до открытия и изменения файла. Я не понимаю какие нарушения были в предыдушей теме с моей стороны. Обяснения которые запрашивал Саня (ТОЛЬКО БЕЗ ОБИД) Имеется какой-то файл на диске с датой и временем (прописаных в свойствах файла например - 21.11.2010 в 11:02 - в это время он когда-то редактировался (создавался)и сохранился) теперь, я его открываю СЕГОДНЯ - (дата 28 января 2011 года допустив время сейчас 13:53) вношу пару изменений в данные какой-то строки и нажимаю кнопку СОХРАНИТЬ на панели. Файл сохраняется с датой и временем 28.01.2011 и время 13:57, а мне надо чтобы он сохранился со временем и датой предыдущего сохранения т.е. 21.11.2010 в 11:02. По моему я объяснил БОЛЕЕ подробно что НАДО.Гость11
щас времени нет и сегодня я уезжаю (неделю готов ждать?) самое сложное здесь, как сейчас это видится, - это считать св-во файла "Изменен" - сдается мне, что без API не обойтись...
щас времени нет и сегодня я уезжаю (неделю готов ждать?) самое сложное здесь, как сейчас это видится, - это считать св-во файла "Изменен" - сдается мне, что без API не обойтись...Саня
не могу не поделиться той радостью, которая меня постигла после нарытия части решения этой проблемы [vba]
Код
Option Explicit Public Const GENERIC_READ = &H80000000 Public Const FILE_SHARE_READ = &H1 Public Const OPEN_EXISTING = 3 Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type
Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type
Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" ( _ ByVal lpFileName As String, _ ByVal dwDesiredAccess As Long, _ ByVal dwShareMode As Long, _ lpSecurityAttributes As Any, _ ByVal dwCreationDisposition As Long, _ ByVal dwFlagsAndAttributes As Long, _ ByVal hTemplateFile As Long) As Long
Declare Function GetFileTime Lib "kernel32" ( _ ByVal hFile As Long, _ lpCreationTime As FILETIME, _ lpLastAccessTime As FILETIME, _ lpLastWriteTime As FILETIME) As Long
Declare Function FileTimeToLocalFileTime Lib "kernel32.dll" ( _ lpFileTime As FILETIME, _ lpLocalFileTime As FILETIME) As Long
Declare Function FileTimeToSystemTime Lib "kernel32.dll" ( _ lpFileTime As FILETIME, _ lpSystemTime As SYSTEMTIME) As Long
Declare Function CloseHandle Lib "kernel32.dll" ( _ ByVal hObject As Long) As Long
Sub a() ' Display the date on which the file C:\MyApp\test.txt was ' created. Note how the time zone conversion is necessary. Dim hFile As Long ' handle to the opened file Dim cTime As FILETIME ' receives time of creation Dim aTime As FILETIME ' receives time of last access Dim mTime As FILETIME ' receives time of last modification Dim theTime As SYSTEMTIME ' used to manipulate the time Dim retval As Long ' return value
' First, open the file C:\MyApp\test.txt for read-level access. Note the ' expression necessary to pass 0 as lpSecurityAttributes. hFile = CreateFile("C:\MyApp\test.txt", _ GENERIC_READ, _ FILE_SHARE_READ, _ ByVal CLng(0), _ OPEN_EXISTING, _ FILE_ATTRIBUTE_ARCHIVE, 0) If hFile = -1 Then Debug.Print "Could not open the file successfully -- aborting." End ' terminate the program End If
' Next, get the creation, last-access, and last-modification times. retval = GetFileTime(hFile, cTime, aTime, mTime) ' Convert the last-modification time to the local time zone. retval = FileTimeToLocalFileTime(mTime, mTime) ' Convert the FILETIME format to the SYSTEMTIME format. retval = FileTimeToSystemTime(mTime, theTime)
' Display the date of last-modification of the file to the user. With theTime Debug.Print "m "; .wDay & "." & .wMonth & "." & .wYear, _ .wHour & ":" & .wMinute & ":" & .wSecond
End With
' Close the file to free up resources. retval = CloseHandle(hFile) End Sub
[/vba]
остальное там элементарно должно быть, может кто добьет...
не могу не поделиться той радостью, которая меня постигла после нарытия части решения этой проблемы [vba]
Код
Option Explicit Public Const GENERIC_READ = &H80000000 Public Const FILE_SHARE_READ = &H1 Public Const OPEN_EXISTING = 3 Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type
Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type
Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" ( _ ByVal lpFileName As String, _ ByVal dwDesiredAccess As Long, _ ByVal dwShareMode As Long, _ lpSecurityAttributes As Any, _ ByVal dwCreationDisposition As Long, _ ByVal dwFlagsAndAttributes As Long, _ ByVal hTemplateFile As Long) As Long
Declare Function GetFileTime Lib "kernel32" ( _ ByVal hFile As Long, _ lpCreationTime As FILETIME, _ lpLastAccessTime As FILETIME, _ lpLastWriteTime As FILETIME) As Long
Declare Function FileTimeToLocalFileTime Lib "kernel32.dll" ( _ lpFileTime As FILETIME, _ lpLocalFileTime As FILETIME) As Long
Declare Function FileTimeToSystemTime Lib "kernel32.dll" ( _ lpFileTime As FILETIME, _ lpSystemTime As SYSTEMTIME) As Long
Declare Function CloseHandle Lib "kernel32.dll" ( _ ByVal hObject As Long) As Long
Sub a() ' Display the date on which the file C:\MyApp\test.txt was ' created. Note how the time zone conversion is necessary. Dim hFile As Long ' handle to the opened file Dim cTime As FILETIME ' receives time of creation Dim aTime As FILETIME ' receives time of last access Dim mTime As FILETIME ' receives time of last modification Dim theTime As SYSTEMTIME ' used to manipulate the time Dim retval As Long ' return value
' First, open the file C:\MyApp\test.txt for read-level access. Note the ' expression necessary to pass 0 as lpSecurityAttributes. hFile = CreateFile("C:\MyApp\test.txt", _ GENERIC_READ, _ FILE_SHARE_READ, _ ByVal CLng(0), _ OPEN_EXISTING, _ FILE_ATTRIBUTE_ARCHIVE, 0) If hFile = -1 Then Debug.Print "Could not open the file successfully -- aborting." End ' terminate the program End If
' Next, get the creation, last-access, and last-modification times. retval = GetFileTime(hFile, cTime, aTime, mTime) ' Convert the last-modification time to the local time zone. retval = FileTimeToLocalFileTime(mTime, mTime) ' Convert the FILETIME format to the SYSTEMTIME format. retval = FileTimeToSystemTime(mTime, theTime)
' Display the date of last-modification of the file to the user. With theTime Debug.Print "m "; .wDay & "." & .wMonth & "." & .wYear, _ .wHour & ":" & .wMinute & ":" & .wSecond
End With
' Close the file to free up resources. retval = CloseHandle(hFile) End Sub
[/vba]
остальное там элементарно должно быть, может кто добьет...Саня
остальное там элементарно должно быть, может кто добьет...
Нет уж, Саня, сказал А, говори и Б. Такой класс программирования мало кому кроме тебя и ещё нескольких "Планетян" в "Миру" доступен. Ну, в общем, "Назвался клизмой, полезай ..."
Quote (Микеланджело)
остальное там элементарно должно быть, может кто добьет...
Нет уж, Саня, сказал А, говори и Б. Такой класс программирования мало кому кроме тебя и ещё нескольких "Планетян" в "Миру" доступен. Ну, в общем, "Назвался клизмой, полезай ..."
Это не ответ. Ни на одном нормальном форуме Вам не будут помогать делать противоправные действия. У нас это тоже запрещено. Либо Вы внятно объясняете для чего это необходимо, либо я закрываю эту тему.
Это не ответ. Ни на одном нормальном форуме Вам не будут помогать делать противоправные действия. У нас это тоже запрещено. Либо Вы внятно объясняете для чего это необходимо, либо я закрываю эту тему.Serge_007
Мужики, ну ведь все уже давно догадались, что ни для чего легального Гость11 использовать код не собирается ... Ну и пусть ищет дураков на "Поле Чудес" у Якубовича. А здесь ему в баню, кажется, пора
Мужики, ну ведь все уже давно догадались, что ни для чего легального Гость11 использовать код не собирается ... Ну и пусть ищет дураков на "Поле Чудес" у Якубовича. А здесь ему в баню, кажется, пора Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Среда, 02.02.2011, 13:10
Нет уж, Саня, сказал А, говори и Б. Такой класс программирования мало кому кроме тебя и ещё нескольких "Планетян" в "Миру" доступен. Ну, в общем, "Назвался клизмой, полезай ..." biggrin
я эту тему обязательно доделаю, мне это тоже было нужно.
Quote (Alex_ST)
Нет уж, Саня, сказал А, говори и Б. Такой класс программирования мало кому кроме тебя и ещё нескольких "Планетян" в "Миру" доступен. Ну, в общем, "Назвался клизмой, полезай ..." biggrin
я эту тему обязательно доделаю, мне это тоже было нужно.Саня
ни для чего легального Гость11 использовать код не собирается
Ты сам-то попробуй придумать, для чего тебе понадобилось бы менять дату у 2000 файлов. Ему самая дорога на форум вирусописателей. И молодцы Лешка и Саня, что вовремя остановились.
Quote (Serge_007)
Алекс, не торопись. Дай ТС ответить. Ждём.
Серж, как уже написал Леша
Quote (Alex_ST)
ни для чего легального Гость11 использовать код не собирается
Ты сам-то попробуй придумать, для чего тебе понадобилось бы менять дату у 2000 файлов. Ему самая дорога на форум вирусописателей. И молодцы Лешка и Саня, что вовремя остановились.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728