Локал тармокда битта Excel файлдан бир нечта одам фойдаланса, ва
бирорта одамда очик булса, иккинчи одам кириб узгартириш (кайд килиш) кила
олмайди.
Ва купинча кимда
очиклигини билиш муаммолар тугдиради. Албатта, администратор бу масалани техник
ва дастурий томондан хал килиши мумкин, лекин бусиз хам вазиятдан чикиш мумкин.
Мавзудаги макросни
киладиган иши: хар бир кирган одамни исмини *.log файлда ёзиб колдириш.
Энг содда кодни
куриниши ушбу шаклдадир:
Private Sub Workbook_Open()
'excel joylashgan papka ichiga arxiv joylashtiriladi
Open ThisWorkbook.Path & "\usage.log" For
Append As #1
Print #1, Application.UserName, Now
Close #1
End Sub
Excel жойлашган папка ёнидаги бирор папка ичига
архив тушиб туриши учун эса бундай шаклда ёзамиз:
Private Sub Workbook_Open()
'excel joylashgan papka yonidagi 98-reserve papkasi ichiga arxiv
joylashtiriladi
Open ThisWorkbook.Path & "\98-reserve\IL.log"
For Append As #1
Print #1, Application.UserName, Now
Close #1
End Sub
Лекин бу код фойдаланувчи
исмини тугри курсатиши учун Excel фойдаланувчида тугри созланган булиши керак, масалан фойдаланувчи исми MS Office урнатилганда "Петров Иван" эмас "user" деб ёзилган булса, файлни кимда очиклигини билиш кийин булади.
Бу вазиятдан чикиш учун
кодни мураккаблаштирдик, компьютер исмини куйдик, яна бундан ташкари файлни аник
жойини курсатса булади:
Private Sub Workbook_Open()
Open "\\server\sample.log" For Append As #1
'kompyuter ismini ham qoshamiz
Print #1, Application.UserName,
Environ("ComputerName"), Now
Close #1
End Sub
Янада мураккаблаштирсак:
файл номини куйсак:
Private Sub Workbook_Open()
'fayl ismini yozamiz
Open "\\server\sample.log" For Append As #1
Print #1, Application.UserName,
Environ("ComputerName"), Now, ThisWorkbook.Path, ThisWorkbook.Name
Close #1
End Sub
Яъни, бундан кейин
файлни кимдир бошка жойга кучириб, (масалан уз "Рабочий стол"ига)
очса, у ердан тугри курсатилган адресдаги *.log файлга ким очиб, каердан очиб,
ушбу файлни кулланаётгани хакида маълумот тушиб туради.
Натижада архивда куйидаги
матндагидай натижа сатр-сатр булиб туриши керак:
Кайси катакда нима иш килганини ёзиб турсин десангиз... )) (процедура факат маълум листга алокадор була олади)
Private Sub Worksheet_Change(ByVal Target As Range)
'kataklardagi qilingan ishlarni yozib quysin
Open ThisWorkbook.Path & "\usage.log" For Append As #1
Print #1, Application.UserName, Now, ThisWorkbook.Path, ThisWorkbook.Name, ActiveCell.Address, ActiveCell.Text
Close #1
End Sub
Энг, энг сунгги холи:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Open "\\serv1\WL.log" For Append As #1
Print #1, Environ("UserName"), Application.UserName, Now, Environ("ComputerName"), ThisWorkbook.Path, ThisWorkbook.Name, "close"
Close #1
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Open "\\serv1\WL.log" For Append As #1
Print #1, Environ("UserName"), Application.UserName, Now, Environ("ComputerName"), ThisWorkbook.Path, ThisWorkbook.Name, "save"
Close #1
End Sub
Private Sub Workbook_Open()
'papka yolini korsatamiz
Open "\\serv1\WL.log" For Append As #1
Print #1, Environ("UserName"), Application.UserName, Now, Environ("ComputerName"), ThisWorkbook.Path, ThisWorkbook.Name, "open"
Close #1
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
'kataklardagi qilingan ishlarni yozib quysin
Open ThisWorkbook.Path & "\usage.log" For Append As #1
Print #1, Application.UserName, Now, ThisWorkbook.Path, ThisWorkbook.Name, ActiveCell.Address, ActiveCell.Text
Close #1
End Sub
Энг, энг сунгги холи:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Open "\\serv1\WL.log" For Append As #1
Print #1, Environ("UserName"), Application.UserName, Now, Environ("ComputerName"), ThisWorkbook.Path, ThisWorkbook.Name, "close"
Close #1
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Open "\\serv1\WL.log" For Append As #1
Print #1, Environ("UserName"), Application.UserName, Now, Environ("ComputerName"), ThisWorkbook.Path, ThisWorkbook.Name, "save"
Close #1
End Sub
Private Sub Workbook_Open()
'papka yolini korsatamiz
Open "\\serv1\WL.log" For Append As #1
Print #1, Environ("UserName"), Application.UserName, Now, Environ("ComputerName"), ThisWorkbook.Path, ThisWorkbook.Name, "open"
Close #1
End Sub
Эътибор учун рахмат!
Умрбек
Комментариев нет:
Отправить комментарий
кабул килинди