View Single Post
 
Old 01-23-2013, 06:58 AM
trybbe trybbe is offline Windows 7 32bit Office 2010 32bit
Novice
 
Join Date: Jan 2013
Posts: 1
trybbe is on a distinguished road
Default Track changes made to worksheet

Hi, I got the following code from OzGrid.com whi is working fine except I need it to display the name or userid of the person who made the changes.please help
Code:
Dim vOldVal 'Must be at top of module
 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bBold As Boolean
If Target.Cells.Count > 1 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 Sheet1
  .Unprotect Password:="Secret"
  If .Range("A1") = vbNullString Then
    .Range("A1:E1") = Array("CELL CHANGED", "OLD VALUE", _
      "NEW VALUE", "TIME OF CHANGE", "DATE OF CHANGE")
  End If
  With .Cells(.Rows.Count, 1).End(xlUp)(2, 1)
    .Value = 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 values are the results of formulas"
      End If
      .Value = Target
      .Font.Bold = bBold
    End With
    .Offset(0, 3) = Time
    .Offset(0, 4) = Date
  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 Worksheet_SelectionChange(ByVal Target As Range)
vOldVal = Target
End Sub

Last edited by macropod; 02-01-2013 at 01:00 AM. Reason: Added code tags & exstensive code re-formatting
Reply With Quote