The following code works well to log any changes made in any tab of an excel workbook into a tab marked "Tracker":
The only action missing from this code is instructions to capture any whole lines that are deleted from any of the tabs in the workbook. I have found some code online that captures any added rows or deleted rows but I need someone to write the required aspects into the above code so that I can also capture this action
I can tweak code at a push but this one is way beyond my capabilities. Please can anyone assist?
VBA Code:
VBA Code:
Option Explicit
Dim vOldVal 'Must be at top of module
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim bBold As Boolean
If Target.Cells.Count > 1 Then Exit Sub
If ActiveSheet.Name = "Pricing" Then Exit Sub
'On Error Resume Next
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
If IsEmpty(vOldVal) Then vOldVal = "Empty Cell"
bBold = Target.HasFormula
With Sheets("Tracker")
'.Unprotect Password:="Secret"
If .Range("A1") = vbNullString Then
.Range("A1:H1") = Array("Cell Changed", "Old Value", _
"New Value", "Old Formula", "New Formula", "Time of Change", "Date of Change", "User")
End If
With .Cells(.Rows.Count, 1).End(xlUp)(2, 1)
.Value = ActiveSheet.Name & " : " & Target.Address
.Offset(0, 1) = vOldVal
With .Offset(0, 2)
If bBold = True Then
.ClearComments
.AddComment.Text Text:= _
"OzGrid.com:" & Chr(10) & "" & Chr(10) & _
"Bold value is the result of formula change"
End If
.Value = Target
.Font.Bold = bBold
End With
.Offset(0, 5) = Time
.Offset(0, 6) = Date
.Offset(0, 7) = Application.UserName
End With
.Cells.Columns.AutoFit
'.Protect Password:="Secret"
End With
vOldVal = vbNullString
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
On Error GoTo 0
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
vOldVal = Target
End Sub
Private Sub test()
Application.EnableEvents = True
End Sub
The only action missing from this code is instructions to capture any whole lines that are deleted from any of the tabs in the workbook. I have found some code online that captures any added rows or deleted rows but I need someone to write the required aspects into the above code so that I can also capture this action
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim What As String
If Target.Columns.Count = Columns.Count And _
WorksheetFunction.CountA(Selection) > 0 Then
What = "Row " & Target.Row & " Deleted along with " & Target.Rows.Count - 1 & " additonal rows"
Call DocumentChange(What)
End If
If Target.Rows.Count = Rows.Count And _
WorksheetFunction.CountA(Selection) > 0 Then
What = "Column " & Target.Column & " Deleted along with " & Target.Columns.Count - 1 & " additonal columns"
Call DocumentChange(What)
End If
End Sub
I can tweak code at a push but this one is way beyond my capabilities. Please can anyone assist?