
-
آموزش نحوه ثبت تغییرات سلول در اکسل
در یکی دیگر از مطالب از بخش آموزش اکسل در مورد مسأله ای صحبت خواهیم کرد که مورد نیاز بسیاری از کاربران این نرم افزار است ، ثبت تغییرات سلول در اکسل میتواند به ما در مشاهده تغییرات انجام شده بر روی داده های آن کمک کند.
برای پیاده سازی نیاز داریم تا از بخش کدنویسی یعنی تب 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 ایجاد خواهد شد و با هربار تغییر اطلاعات سلول ها اطلاعاتی بصورت زیر در داخل فایل متنی ذخیره خواهد شد.




