Editorul Visual Basic ne permite să creăm diverse aplicaţii utile pentru lucrul cu programul Microsoft Office.
Astăzi o să vă arăt un exemplu în care creăm un log, ce va înregistra anumite detalii, în momentul în care deschidem workbook-ul ce conţine acel cod.
Rezultatul final, va fi acesta:
Info.xls accesat de Alexandru Dionisie 2011-06-01 la ora 18.15.41 (nume utilizator: Alexandru)
Adică: NumeWorkbook accesat de NumeUtilizatorOffice Data la ora Ora (nume utilizator: WindowsUserName).

Cum arata codul:
1) modMain (stochează codul de lansare al userform-ului):
Sub Main()
frmLogViewer.Show
End Sub

2) modJurnal (stochează codul care scrie în fişierul appdata):
Option Explicit
Sub LogInformation(LogInformation As String)
Dim FileNum As Integer
Dim Locatie As String
Locatie = ThisWorkbook.Path & "appdata"
FileNum = FreeFile
Open Locatie For Append As #FileNum
Print #FileNum, LogInformation
Close #FileNum
End Sub

3) modulul ThisWorkbook (stochează codul care spune modulului modJurnal ce informaţii să scrie în log la deschiderea workbook-ului):
Private Sub Workbook_Open()
On Error GoTo err
LogInformation ThisWorkbook.Name & " accesat de " _
& Application.UserName _
& " " _
& Format(Date, "yyyy.mm.dd") _
& " la ora " _
& Format(Time, "hh.mm.ss") _
& " (nume utilizator: " _
& Environ("UserName") _
& ")"
Exit Sub
err:
MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

4) butonul de comandă cmdShowLog (încarcă conţinutul fisierului appdata în textbox-ul txtLogreader):
Private Sub cmdShowLog_Click()
Dim Filename As String
Dim FileLength
Open ThisWorkbook.Path & "appdata" For Input As #1
FileLength = LOF(1)
txtLogReader.Text = Input(FileLength, #1)
Close #1
End Sub

Această porţiune din cod: ThisWorkbook.Path & "appdata" înseamnă că se va accesa calea relativă (locaţia unde este stocat workbook-ul) şi se va deschide fişierul appdata.
Pentru textbox-ul txtLogReader se setează proprietatea Multiline=True, pentru ca macrocomanda să poata scrie pe mai multe linii.

Back To Top
Search