title: Worksheet change event with multiple selections
body: <p>I have a sheet that i keep a log of the changes that happen on it such as data entered into a cell or data deleted etc. This works great except for when multiple selections happen.</p>
  
  <p>For example if i select B2 and D2 and F2 and deleted the contents of the cells the worksheet change event will only pick up the change for the first cell, B2. So i have no idea what happened to the other cells. </p>
  
  <p>Is there a way i can get around this and either get it to log the worksheet change for the other cells or stop multiple selection deletes happening ?</p>
  
  <p>Here is my code</p>
  
  <pre><code>Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As 
  
  Range)
  
  Dim ws As Worksheet, iRow As Long, iCol As Long, Message As String, SheetId As String, iRowE As Long, iColE As Long, iRowB As Long, iColB As Long
  
  Set ws = Sh
  SheetId = Replace(ws.Name, " ", "")
  SheetId = Left(SheetId, 2) &amp; Right(SheetId, 2)
  
  iRowB = Target.Row
  iColB = Target.Column
  iRowE = iRowB + Target.Rows.Count - 1
  iColE = iColB + Target.Columns.Count - 1
  
  Message = Format(Now(), "ddHHmmss") &amp; Application.UserName &amp; "-" &amp; SheetId
  
  For iRow = iRowB To iRowE
    For iCol = iColB To iColE
      Message = Message &amp; "|" &amp; Format(iRow, " 0") &amp; Format(iCol, " 0") &amp; "|" &amp; CStr(ws.Cells(iRow, iCol).Text)
    Next iCol
  Next iRow
  
  If Not FileExists("L:\HC\" &amp; ThisWorkbook.Name &amp; Format(Now(), "YYYYMM") &amp; ".Log") Then
    Call LogIt("L:\HC\" &amp; ThisWorkbook.Name &amp; Format(Now(), "YYYYMM") &amp; ".Log", "ddHHmmssUSER-sheet|row col|value|row col|value")
  End If
  
  Call LogIt("L:\HC\" &amp; ThisWorkbook.Name &amp; Format(Now(), "YYYYMM") &amp; ".Log", Message)
  
  End Sub
  </code></pre>