Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
- Πώς ενεργοποιούμε το Unified Auditing σε Oracle Database - 7 Οκτώβριος 2024
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
Όλοι μας γνωρίζουμε το Microsoft Excel ως ένα από τα βασικότερα και πρώτα προγράμματα που δημιουργήθηκαν για χρήση με γραφικών περιβάλλον στους ηλεκτρονικούς υπολογιστές.
Πολλές φορές έχουμε ένα κοινόχρηστο αρχείο Excel το οποίο το επεξεργάζονται πολλοί χρήστες. Ίσως για κάποιο λόγο χρειαστούμε να κάνουμε audit και να κρατάμε το πότε έγινε μεταβολή η κάθε εγγραφή και από ποιόν χρήστη.
Για να γίνει αυτό θα πρέπει να συλλέξουμε την πληροφορία από το Active Directory μέσω LDAP. Φυσικά είναι προϋπόθεση να χρησιμοποιούμε Active Directory στο δίκτυο μας.
Το παράδειγμα
Πάμε να δούμε πως θα ενεργοποιήσουμε αυτόματα να συμπληρώνονται τα πεδία της μεταβολής και του χρήστη.
Για αρχή πρέπει να ενεργοποιήσουμε το Developer mode αν δεν το έχουμε κάνει ήδη.
Στο Excel – File – Options – Customize Ribbon – κλικ το κουτάκι Developer.
View Code.
Βλέπουμε μας άνοιξε το παράθυρο διαχείρισης του VBA. Εκεί θα εισάγουμε τον παρακάτω κώδικα:
Private Sub Worksheet_Change(ByVal Target As Range) Set WSHnet = CreateObject("WScript.Network") username = WSHnet.username UserDomain = WSHnet.UserDomain Set objUser = GetObject("WinNT://" & UserDomain & "/" & username & ",user") UserFullName = objUser.FullName Dim sUserName As String Dim xTimeColumn As Integer Dim xRow, xCol As Integer Dim xDPRg, xRg As Range xTimeColumn = 7 'βάζουμε τον αριθμό της κολόνας που θα εμφανίζεται η ώρα μεταβολής xNColumn = 8 'βάζουμε τον αριθμό της κολόνας που θα εμφανίζεται το όνομα του Χρήστη xRow = Target.Row xCol = Target.Column sUserName = Environ$("username") If Target.Text <> "" Then Select Case xCol Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 On Error Resume Next Set xDPRg = Target.Dependents For Each xRg In xDPRg If xRg.Column = xCellColumn Then 'Worksheets("Sheet1").Unprotect "password" 'unlock cells, αν έχουμε βάλει κωδικό για προστασία του αρχείου Cells(xRow, xTimeColumn) = Now() 'Cells(xRow, xNColumn) = sUserName 'username Cells(xRow, xNColumn) = UserFullName 'FullName 'Worksheets("Sheet1").Protect "password" 'lock cells, αν έχουμε βάλει κωδικό για προστασία του αρχείου End If Next End Select End If
Στο πεδίο xTimeColumn βάζουμε τον αριθμό της κολόνας που θα εμφανίζεται η ώρα μεταβολής και στο πεδίο xNColumn βάζουμε τον αριθμό της κολόνας που θα εμφανίζεται το όνομα του χρήστη.
Αφού τοποθετήσουμε τον κώδικα στο φύλλο επιλέγουμε save.
Το αποτέλεσμα
Τώρα θα δούμε με το πάμε να πειράξουμε κάποιο πεδίο πχ τη “Συνολική Τιμή” από 80 σε 90 θα εμφανιστεί η ώρα και το όνομα που έχει δηλωθεί ο χρήστης στο Active Directory.