Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Ведение лога(запись в файл) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ведение лога(запись в файл) (Макросы/Sub)
Ведение лога(запись в файл)
Espada Дата: Вторник, 17.12.2019, 09:13 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 112
Репутация: 0 ±
Замечаний: 20% ±

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


Сообщение отредактировал Espada - Вторник, 17.12.2019, 09:14
 
Ответить
СообщениеДоброго дня. есть вопросик: Есть журнал паспортов(в excel) с 5-ю кнопками(добавить, редактировать, удалить, поиск, проверка). Появилась необходимость вести Лог нажатых кнопок. может есть пример кода, что бы при нажатии на кнопку,велась запись в уже созданный существующий текстовый файл. файл открывать или как либо сообщать о записи не нужно. спасибо)

Автор - Espada
Дата добавления - 17.12.2019 в 09:13
boa Дата: Вторник, 17.12.2019, 09:46 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 543
Репутация: 166 ±
Замечаний: 0% ±

2013, 365
Espada,

[vba]
Код
Private Sub EditLogFile(ByVal LogFilePath$, Optional LogEvent$ = "", Optional LogFileName$ = "LOG.txt")
'' Author:  boa
'' Written: 25.03.2016
'' Description: Recording data proces
'LogFilePath - Путь размещения файла лога
'LogEvent - записуемое сообщение
'LogFileName - имя файла-Лога

On Error GoTo errHandler
    
    Dim LogFileFullName$:   LogFileFullName = LogFilePath & "Logs\" & LogFileName
    Dim objFSO As Object:   Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim fileNum%:           fileNum = FreeFile()
    Open LogFileFullName For Append As #fileNum ' открываем файл в режиме дозаписи
         Print #1, Chr(34) & Format(Date, "YYYY.MM.DD") & Chr(32) & Time$ & Chr(34) & Chr(59) & _
                   Chr(34) & Application.UserName & Chr(34) & Chr(59) & _
                   IIf(Len(LogEvent) > 0, Chr(34) & LogEvent & Chr(34), "")
    Close #fileNum
errHandler:
    Set objFSO = Nothing: ' очищаем переменные
    If Err.Number > 0 Then Debug.Print "Ошибка записи лог файла. Ошибка №" & Err.Number & " - " & Err.Description
End Sub
[/vba]


 
Ответить
СообщениеEspada,

[vba]
Код
Private Sub EditLogFile(ByVal LogFilePath$, Optional LogEvent$ = "", Optional LogFileName$ = "LOG.txt")
'' Author:  boa
'' Written: 25.03.2016
'' Description: Recording data proces
'LogFilePath - Путь размещения файла лога
'LogEvent - записуемое сообщение
'LogFileName - имя файла-Лога

On Error GoTo errHandler
    
    Dim LogFileFullName$:   LogFileFullName = LogFilePath & "Logs\" & LogFileName
    Dim objFSO As Object:   Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim fileNum%:           fileNum = FreeFile()
    Open LogFileFullName For Append As #fileNum ' открываем файл в режиме дозаписи
         Print #1, Chr(34) & Format(Date, "YYYY.MM.DD") & Chr(32) & Time$ & Chr(34) & Chr(59) & _
                   Chr(34) & Application.UserName & Chr(34) & Chr(59) & _
                   IIf(Len(LogEvent) > 0, Chr(34) & LogEvent & Chr(34), "")
    Close #fileNum
errHandler:
    Set objFSO = Nothing: ' очищаем переменные
    If Err.Number > 0 Then Debug.Print "Ошибка записи лог файла. Ошибка №" & Err.Number & " - " & Err.Description
End Sub
[/vba]

Автор - boa
Дата добавления - 17.12.2019 в 09:46
Espada Дата: Вторник, 17.12.2019, 10:41 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 112
Репутация: 0 ±
Замечаний: 20% ±

Излишнее цитирование удалено администрацией - это нарушение п.5j Правил форума

я что-то делаю не так, хочу проверить работоспособность, вставляю в чистый документ, но у меня даже в списке макросов он не отображается...


Сообщение отредактировал китин - Вторник, 17.12.2019, 11:08
 
Ответить
СообщениеИзлишнее цитирование удалено администрацией - это нарушение п.5j Правил форума

я что-то делаю не так, хочу проверить работоспособность, вставляю в чистый документ, но у меня даже в списке макросов он не отображается...

Автор - Espada
Дата добавления - 17.12.2019 в 10:41
boa Дата: Вторник, 17.12.2019, 10:53 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 543
Репутация: 166 ±
Замечаний: 0% ±

2013, 365
так он на прямую и не вызовется
данному макросу надо передать параметры

[vba]
Код
Sub test()

'здесь нажалась ваша кнопка
'  ...
'здесь записываем лог
  Call EditLogFile(ThisWorkbook.Path & "\", "Нажали кнопку ""Далее""")
End Sub
[/vba]
К сообщению приложен файл: Book1.xlsb(21.9 Kb)


 
Ответить
Сообщениетак он на прямую и не вызовется
данному макросу надо передать параметры

[vba]
Код
Sub test()

'здесь нажалась ваша кнопка
'  ...
'здесь записываем лог
  Call EditLogFile(ThisWorkbook.Path & "\", "Нажали кнопку ""Далее""")
End Sub
[/vba]

Автор - boa
Дата добавления - 17.12.2019 в 10:53
Espada Дата: Вторник, 17.12.2019, 15:21 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 112
Репутация: 0 ±
Замечаний: 20% ±

так он на прямую и не вызовется
данному макросу надо передать параметры

Спасибо большое, всё получилось.
 
Ответить
Сообщение
так он на прямую и не вызовется
данному макросу надо передать параметры

Спасибо большое, всё получилось.

Автор - Espada
Дата добавления - 17.12.2019 в 15:21
RAN Дата: Вторник, 17.12.2019, 17:24 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5630
Репутация: 1143 ±
Замечаний: 0% ±

2010
boa, круто закручено.
Если Use FSO, то почему Open?
А если Open, то зачем Use FSO?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеboa, круто закручено.
Если Use FSO, то почему Open?
А если Open, то зачем Use FSO?

Автор - RAN
Дата добавления - 17.12.2019 в 17:24
boa Дата: Среда, 18.12.2019, 12:56 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 543
Репутация: 166 ±
Замечаний: 0% ±

2013, 365
RAN,
недосмотрел,
это остался кусок не обрезанного кода
objFSO там вообще не нужен и данным кодом не используется.
Исправленный код под +


 
Ответить
СообщениеRAN,
недосмотрел,
это остался кусок не обрезанного кода
objFSO там вообще не нужен и данным кодом не используется.
Исправленный код под +

Автор - boa
Дата добавления - 18.12.2019 в 12:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ведение лога(запись в файл) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2022 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!