
- 
آموزش نحوه ثبت تغییرات سلول در اکسل
در یکی دیگر از مطالب از بخش آموزش اکسل در مورد مسأله ای صحبت خواهیم کرد که مورد نیاز بسیاری از کاربران این نرم افزار است ، ثبت تغییرات سلول در اکسل میتواند به ما در مشاهده تغییرات انجام شده بر روی داده های آن کمک کند.
برای پیاده سازی نیاز داریم تا از بخش کدنویسی یعنی تب Developer ، بخش Code و گزینه Visual Basic وارد شویم و کدهایی را در این بخش قرار دهیم. اگر نمیدانید چگونه تب Developer را باید به نمایش درآورید ، پیشنهاد میکنم به مطلب آموزش ماکرونویسی در اکسل مراجعه کنید.
پس از ورود به محیط کدنویسی کافی است تا مطابق تصویر زیر روی ThisWorkbook دابل کلیک کنیم تا پنجره کدنویسی به نمایش درآید ، حالا کدهای زیر را در این بخش قرار میدهیم ، توجه داشته باشید قبل از Paste کردن کدها ، محتویات قبلی پنجره را که بصورت خودکار توسط اکسل درج شده است را پاک کنید.

Dim OldValue As Variant 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        OldValue = Target.Value
    End If
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim FilePath As String
    Dim FileNumber As Integer
    Dim NewValue As Variant
    Dim CurrentDate As String
    Dim CurrentTime As String
    Dim CellAddress As String
    Dim UserName As String
    Dim SheetName As String
    Dim LogEntry As String
    
     
    FilePath = "F:\ChangeLog.txt"
    
    
    If Target.Cells.Count > 1 Then Exit Sub
    
       
    SheetName = Sh.Name
    
    CellAddress = Target.Address
    
    NewValue = Target.Value
    
    CurrentDate = Format(Now, "YYYY/MM/DD")
    CurrentTime = Format(Now, "HH:MM:SS")
    
    UserName = Environ("USERNAME")
    
    FileNumber = FreeFile
    Open FilePath For Append As FileNumber
    
   
    LogEntry = UserName & vbTab & CurrentDate & vbTab & CurrentTime & vbTab & SheetName & vbTab & CellAddress & vbTab & OldValue & vbTab & NewValue
    Print #FileNumber, LogEntry
    
     
    Close FileNumber
End Sub
توجه داشته باشید که فایل متنی بصورت پیشفرض در FilePath = “F:\ChangeLog.txt” آدرس دهی شده است که شما بایستی متناسب با وضعیت درایو کامپیوتر خود آن را تغییر دهید.
در ادامه بایستی با زدن کلیدهای ترکیبی Ctrl+S عمل ذخیره سازی فایل را با فرمت Xlsm انجام دهیم ، چرا که این فایل دارای کدهای VBA بوده و امکان ذخیره کردن آن بصورت عادی با فرمت پیشفرض یعنی Xlsx وجود ندارد. نکته دیگری که باید به آن توجه کرد این است که قابلیت اجرای ماکرو باید در اکسل شما فعال شده باشد ، در تصویر زیر نحوه فعال سازی آنرا مشاهده میکنید.

حالا با درج اطلاعات در داخل سلول یا تغییر محتوای آن برای اولین بار یک فایل متنی بصورت خودکار در آدرس ثبت شده ای که در کدها مشخص کردیم با نام ChangeLog.txt ایجاد خواهد شد و با هربار تغییر اطلاعات سلول ها اطلاعاتی بصورت زیر در داخل فایل متنی ذخیره خواهد شد.

 
                                                                    


