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