Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel

Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel

Όλοι μας γνωρίζουμε το Microsoft Excel ως ένα από τα βασικότερα και πρώτα προγράμματα που δημιουργήθηκαν για χρήση με γραφικών περιβάλλον στους ηλεκτρονικούς υπολογιστές.

Πολλές φορές έχουμε ένα κοινόχρηστο αρχείο Excel το οποίο το επεξεργάζονται πολλοί χρήστες. Ίσως για κάποιο λόγο χρειαστούμε να κάνουμε audit και να κρατάμε το πότε έγινε μεταβολή η κάθε εγγραφή και από ποιόν χρήστη.

Για να γίνει αυτό θα πρέπει να συλλέξουμε την πληροφορία από το Active Directory μέσω LDAP. Φυσικά είναι προϋπόθεση να χρησιμοποιούμε Active Directory στο δίκτυο μας.

Το παράδειγμα

Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
01

Πάμε να δούμε πως θα ενεργοποιήσουμε αυτόματα να συμπληρώνονται τα πεδία της μεταβολής και του χρήστη.

Για αρχή πρέπει να ενεργοποιήσουμε το Developer mode αν δεν το έχουμε κάνει ήδη.

Στο Excel – File – Options – Customize Ribbon – κλικ το κουτάκι Developer.

Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
02

View Code.

Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
03

Βλέπουμε μας άνοιξε το παράθυρο διαχείρισης του 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.

Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
04

Το αποτέλεσμα

Τώρα θα δούμε με το πάμε να πειράξουμε κάποιο πεδίο πχ τη “Συνολική Τιμή” από 80 σε 90 θα εμφανιστεί η ώρα και το όνομα που έχει δηλωθεί ο χρήστης στο Active Directory.

Πώς γίνεται να καταγράφουμε ποιος έκανε τελευταίος τροποποίηση την εγγραφή σε κοινόχρηστο Microsoft Excel
05
Μοιράσου το

Αφήστε μία απάντηση