<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FExcel%2FWorksheet_Event</id>
		<title>VBA/Excel/Access/Word/Excel/Worksheet Event - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FExcel%2FWorksheet_Event"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Worksheet_Event&amp;action=history"/>
		<updated>2026-04-06T04:11:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Worksheet_Event&amp;diff=1666&amp;oldid=prev</id>
		<title> в 16:33, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Worksheet_Event&amp;diff=1666&amp;oldid=prev"/>
				<updated>2010-05-26T16:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:33, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Worksheet_Event&amp;diff=1667&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Worksheet_Event&amp;diff=1667&amp;oldid=prev"/>
				<updated>2010-05-26T12:47:47Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Activating Only the Used Range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Activate( )&lt;br /&gt;
      Me.ScrollArea = Range(Me.UsedRange, Me.UsedRange(2,2)).Address&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BeforeDoubleClick event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_BeforeDoubleClick _&lt;br /&gt;
    (ByVal Target As Excel.Range, Cancel As Boolean)&lt;br /&gt;
    Target.Font.Bold = Not Target.Font.Bold&lt;br /&gt;
    Cancel = True&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==BeforeRightClick event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)&lt;br /&gt;
    If IsNumeric(Target) And Not IsEmpty(Target) Then&lt;br /&gt;
        Application.Dialogs(xlDialogFormatNumber).Show&lt;br /&gt;
        Cancel = True&lt;br /&gt;
    End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cancel a change in Worksheet Selection Change event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;
  Dim Forbidden As Range&lt;br /&gt;
  &lt;br /&gt;
  Set Forbidden = Union(Range(&amp;quot;B10:F20&amp;quot;), Range(&amp;quot;H10:L20&amp;quot;))&lt;br /&gt;
  If Intersect(Target, Forbidden) Is Nothing Then Exit Sub&lt;br /&gt;
  Range(&amp;quot;A1&amp;quot;).Select&lt;br /&gt;
  MsgBox &amp;quot;You can&amp;quot;t select cells in &amp;quot; &amp;amp; Forbidden.Address, vbCritical&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==changes a cell&amp;quot;s interior color to red when it is double-clicked:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _&lt;br /&gt;
    Cancel As Boolean)&lt;br /&gt;
    Dim myColor As Integer&lt;br /&gt;
    Target.Interior.ColorIndex = 3&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Change the range color in selection change event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;
             Rows.Interior.ColorIndex = xlColorIndexNone&lt;br /&gt;
             Target.EntireColumn.Interior.ColorIndex = 36&lt;br /&gt;
             Target.EntireRow.Interior.ColorIndex = 36&lt;br /&gt;
         End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==checks each changed cell and displays a message box if the cell is within the desired range.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Excel.Range)&lt;br /&gt;
    Set VRange = Range(&amp;quot;InputRange&amp;quot;)&lt;br /&gt;
    For Each cell In Target&lt;br /&gt;
        If Union(cell, VRange).Address = VRange.Address Then&lt;br /&gt;
           Msgbox &amp;quot;The changed cell is in the input range.&amp;quot;&lt;br /&gt;
        End if&lt;br /&gt;
    Next cell&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create a function for Excel: Is a cell formula cell==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Function IsFormula(Check_Cell As Range)&lt;br /&gt;
      IsFormula = Check_Cell.HasFormula&lt;br /&gt;
     End Function&lt;br /&gt;
=IsFormula(A1)&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating a Database Form From an Excel Worksheet in worksheet activate event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Activate()&lt;br /&gt;
    Dim dbNorthwind As DAO.Database&lt;br /&gt;
    Dim rsCategories As DAO.Recordset&lt;br /&gt;
    Dim dbpath As String&lt;br /&gt;
    dbpath = CurrentPath &amp;amp; &amp;quot;\mydb.mdb&amp;quot;&lt;br /&gt;
    Set dbNorthwind = OpenDatabase(dbpath)&lt;br /&gt;
    Set rsCategories = dbNorthwind.OpenRecordset( _&lt;br /&gt;
        &amp;quot;Categories&amp;quot;, dbOpenTable)&lt;br /&gt;
    With rsCategories&lt;br /&gt;
        If Not .BOF Then .MoveFirst&lt;br /&gt;
        Cells(3, 3).Value = .Fields(1).Value    &amp;quot;Name&lt;br /&gt;
        Cells(5, 3).Value = .Fields(2).Value    &amp;quot;Description&lt;br /&gt;
    End With&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==disable the events and then reenable them at the end of the procedure:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;
    Application.EnableEvents = False&lt;br /&gt;
    Range(&amp;quot;A1&amp;quot;).Value = Target.Value&lt;br /&gt;
    Application.EnableEvents = True&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enable Events==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;
           Application.EnableEvents = False&lt;br /&gt;
           Range(&amp;quot;A1&amp;quot;).Value = 100&lt;br /&gt;
           Application.EnableEvents = True&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==event procedure runs every time the worksheet recalculates==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Private Sub Worksheet_Calculate()&lt;br /&gt;
           Dim dProfit As Double&lt;br /&gt;
           dProfit = Me.Range(&amp;quot;A1&amp;quot;).Value&lt;br /&gt;
           If dProfit &amp;gt; 600 Then&lt;br /&gt;
           MsgBox &amp;quot;Profit has risen to &amp;quot; &amp;amp; Format(dProfit, &amp;quot;#,##0.0&amp;quot;), vbExclamation&lt;br /&gt;
           ElseIf dProfit &amp;lt; 500 Then&lt;br /&gt;
           MsgBox &amp;quot;Profit has fallen to &amp;quot; &amp;amp; Format(dProfit, &amp;quot;#,##0.0&amp;quot;), vbCritical&lt;br /&gt;
           End If&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples of Activation Events==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Activate()&lt;br /&gt;
    MsgBox &amp;quot;You just activated &amp;quot; &amp;amp; ActiveSheet.Name&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example that activates cell A1 whenever the sheet is activated:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Activate()&lt;br /&gt;
    Range(&amp;quot;A1&amp;quot;).Activate&lt;br /&gt;
End Sub&lt;br /&gt;
Worksheet Deactivate event&lt;br /&gt;
    Private Sub Worksheet_Deactivate()&lt;br /&gt;
    MsgBox &amp;quot;You must stay on Sheet1&amp;quot;&lt;br /&gt;
    Sheets(&amp;quot;Sheet1&amp;quot;).Activate&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==If you want the same data to appear on other sheets but not in the same cell addresses==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub worksheet_Change(ByVal Target As Range)&lt;br /&gt;
      If Not Intersect(Range(&amp;quot;MyRange&amp;quot;), Target) Is Nothing Then&lt;br /&gt;
      With Range(&amp;quot;MyRange&amp;quot;)&lt;br /&gt;
      .Copy Destination:=Sheets(&amp;quot;Sheet3&amp;quot;).Range(&amp;quot;A1&amp;quot;)&lt;br /&gt;
      .Copy Destination:=Sheets(&amp;quot;Sheet1&amp;quot;).Range(&amp;quot;D10&amp;quot;)&lt;br /&gt;
      End With&lt;br /&gt;
      End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==makes use of conditional formatting and overwrites any existing conditional formatting on the sheet.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;
    Dim iColor As Integer&lt;br /&gt;
    On Error Resume Next&lt;br /&gt;
    iColor = Target.Interior.ColorIndex&lt;br /&gt;
    If iColor &amp;lt; 0 Then&lt;br /&gt;
        iColor = 36&lt;br /&gt;
    Else&lt;br /&gt;
        iColor = iColor + 1&lt;br /&gt;
    End If&lt;br /&gt;
    If iColor = Target.Font.ColorIndex Then iColor = iColor + 1&lt;br /&gt;
    Cells.FormatConditions.Delete&lt;br /&gt;
    With Range(&amp;quot;A&amp;quot; &amp;amp; Target.Row, Target.Address)&lt;br /&gt;
        .FormatConditions.Add Type:=2, Formula1:=&amp;quot;TRUE&amp;quot;&lt;br /&gt;
        .FormatConditions(1).Interior.ColorIndex = iColor&lt;br /&gt;
    End With&lt;br /&gt;
    With Range(Target.Offset(1 - Target.Row, 0).Address &amp;amp; &amp;quot;:&amp;quot; &amp;amp; _&lt;br /&gt;
        Target.Offset(-1, 0).Address)&lt;br /&gt;
        .FormatConditions.Add Type:=2, Formula1:=&amp;quot;TRUE&amp;quot;&lt;br /&gt;
        .FormatConditions(1).Interior.ColorIndex = iColor&lt;br /&gt;
    End With&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Monitoring a specific range for changes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Excel.Range)&lt;br /&gt;
    Dim VRange As Range&lt;br /&gt;
    Set VRange = Range(&amp;quot;InputRange&amp;quot;)&lt;br /&gt;
    If Union(Target, VRange).Address = VRange.Address Then&lt;br /&gt;
       Msgbox &amp;quot;The changed cell is in the input range.&amp;quot;&lt;br /&gt;
    End if&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preventing data validation from being destroyed==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
          &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;
    Dim VT As Long&lt;br /&gt;
    On Error Resume Next&lt;br /&gt;
    VT = Range(&amp;quot;A1&amp;quot;).Validation.Type&lt;br /&gt;
    If Err.Number &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
        Application.Undo&lt;br /&gt;
        MsgBox &amp;quot;canceled.&amp;quot;&lt;br /&gt;
    End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SelectionChange event executes whenever the user makes a new selection on the worksheet.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)&lt;br /&gt;
    Cells.Interior.ColorIndex = xlNone&lt;br /&gt;
    With ActiveCell&lt;br /&gt;
        .EntireRow.Interior.ColorIndex = 36&lt;br /&gt;
        .EntireColumn.Interior.ColorIndex = 36&lt;br /&gt;
    End With&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some Worksheet event are executed before the associated event occurs and have a Cancel parameter that is passed by reference.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _&lt;br /&gt;
                                               Cancel As Boolean)&lt;br /&gt;
           Cancel = True&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Change event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;
    If Target.Address = &amp;quot;$A$1&amp;quot; Then&lt;br /&gt;
        If Not IsNumeric(Target) Then&lt;br /&gt;
            MsgBox &amp;quot;Enter a number in cell A1.&amp;quot;&lt;br /&gt;
            Range(&amp;quot;A1&amp;quot;).ClearContents&lt;br /&gt;
            Range(&amp;quot;A1&amp;quot;).Activate&lt;br /&gt;
        End If&lt;br /&gt;
    End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The event-handler procedure for the SelectionChange event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)&lt;br /&gt;
    If Union(Target, Range(&amp;quot;ToolbarRange&amp;quot;)).Address = Range(&amp;quot;ToolbarRange&amp;quot;).Address Then&lt;br /&gt;
        CommandBars(&amp;quot;myBar&amp;quot;).Visible = True&lt;br /&gt;
    Else&lt;br /&gt;
        CommandBars(&amp;quot;myBar&amp;quot;).Visible = False&lt;br /&gt;
    End If&lt;br /&gt;
End Sub&lt;br /&gt;
      &lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==To validate user input, one possible location for the code is the SheetChange() event procedure of the Workbook object.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)&lt;br /&gt;
    MsgBox (Sh.Name &amp;amp; &amp;quot; &amp;quot;&amp;amp; Target.Address)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==trace worksheet activate event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub Worksheet_Activate()&lt;br /&gt;
    Dim msgOutput As String&lt;br /&gt;
    msgOutput = &amp;quot;This worksheet is &amp;quot; &amp;amp;  Workheets(2).Name&lt;br /&gt;
    MsgBox (msgOutput)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Track worksheet change event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;
    Dim msgOutput As String&lt;br /&gt;
    msgOutput = &amp;quot;The name of this worksheet is &amp;quot; &amp;amp; Worlsheets(1).Name&lt;br /&gt;
    MsgBox (msgOutput)&lt;br /&gt;
    Worksheets(1).Select&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use a Change event to take what is in the cell and insert the colon for you==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;
    Dim ThisColumn As Integer&lt;br /&gt;
    Dim UserInput As String, NewInput As String&lt;br /&gt;
    ThisColumn = Target.Column&lt;br /&gt;
    If ThisColumn &amp;lt; 3 Then&lt;br /&gt;
        UserInput = Target.Value&lt;br /&gt;
        If UserInput &amp;gt; 1 Then&lt;br /&gt;
            NewInput = Left(UserInput, Len(UserInput) - 2) &amp;amp; &amp;quot;:&amp;quot; &amp;amp; _&lt;br /&gt;
            Right(UserInput, 2)&lt;br /&gt;
            Application.EnableEvents = False&lt;br /&gt;
            Target = NewInput&lt;br /&gt;
            Application.EnableEvents = True&lt;br /&gt;
        End If&lt;br /&gt;
    End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Event Parameters to cancel an event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)&lt;br /&gt;
    Cancel = True&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the Change Event to Respond to Worksheet Changes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Range) &lt;br /&gt;
    Select Case Target.Address &lt;br /&gt;
        Case &amp;quot;$B$1&amp;quot; &lt;br /&gt;
            Debug.Print Target.Value &lt;br /&gt;
        Case &amp;quot;$B$2&amp;quot; &lt;br /&gt;
            Debug.Print Target.Value &lt;br /&gt;
    End Select &lt;br /&gt;
End Sub &lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Validating data entry in Worksheet change event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Excel.Range)&lt;br /&gt;
    Dim VRange As Range, cell As Range&lt;br /&gt;
    Dim Msg As String&lt;br /&gt;
    Dim ValidateCode As Variant&lt;br /&gt;
    Set VRange = Range(&amp;quot;A1:C4&amp;quot;)&lt;br /&gt;
    For Each cell In Target&lt;br /&gt;
        If Union(cell, VRange).Address = VRange.Address Then&lt;br /&gt;
            ValidateCode = EntryIsValid(cell)&lt;br /&gt;
            If ValidateCode = True Then&lt;br /&gt;
                Exit Sub&lt;br /&gt;
            Else&lt;br /&gt;
                Debug.Print &amp;quot;Cell &amp;quot; &amp;amp; cell.Address(False, False) &amp;amp; &amp;quot;:&amp;quot; &amp;amp; ValidateCode&lt;br /&gt;
                Application.EnableEvents = False&lt;br /&gt;
                cell.ClearContents&lt;br /&gt;
                cell.Activate&lt;br /&gt;
                Application.EnableEvents = True&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
    Next cell&lt;br /&gt;
End Sub&lt;br /&gt;
Function EntryIsValid(cell) As Variant&lt;br /&gt;
    If cell = &amp;quot;&amp;quot; Then&lt;br /&gt;
        EntryIsValid = True&lt;br /&gt;
        Exit Function&lt;br /&gt;
    End If&lt;br /&gt;
    If Not IsNumeric(cell) Then&lt;br /&gt;
        EntryIsValid = &amp;quot;Non-numeric entry.&amp;quot;&lt;br /&gt;
        Exit Function&lt;br /&gt;
    End If&lt;br /&gt;
    If CInt(cell) &amp;lt;&amp;gt; cell Then&lt;br /&gt;
        EntryIsValid = &amp;quot;Integer required.&amp;quot;&lt;br /&gt;
        Exit Function&lt;br /&gt;
    End If&lt;br /&gt;
    If cell &amp;lt; 1 Or cell &amp;gt; 12 Then&lt;br /&gt;
        EntryIsValid = &amp;quot;Valid values are between 1 and 12.&amp;quot;&lt;br /&gt;
        Exit Function&lt;br /&gt;
    End If&lt;br /&gt;
    EntryIsValid = True&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==With each range selection you make in the worksheet, the background color of the selection will turn blue.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;
    Target.Interior.Color = vbBlue&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Worksheet_Calculate()==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Calculate()&lt;br /&gt;
    Select Case Range(&amp;quot;C3&amp;quot;).Value&lt;br /&gt;
        Case Is &amp;lt; Range(&amp;quot;C4&amp;quot;).Value&lt;br /&gt;
            SetArrow 10, msoShapeDownArrow&lt;br /&gt;
        Case Is &amp;gt; Range(&amp;quot;C4&amp;quot;).Value&lt;br /&gt;
            SetArrow 3, msoShapeUpArrow&lt;br /&gt;
    End Select&lt;br /&gt;
End Sub&lt;br /&gt;
Private Sub SetArrow()&lt;br /&gt;
    &amp;quot; The following code is added to remove the prior shapes&lt;br /&gt;
    For Each sh In ActiveSheet.Shapes&lt;br /&gt;
        If sh.Name Like &amp;quot;*Arrow*&amp;quot; Then&lt;br /&gt;
            sh.Delete&lt;br /&gt;
        End If&lt;br /&gt;
    Next sh&lt;br /&gt;
    ActiveSheet.Shapes.AddShape(20, 17.25, 43.5, 5, 10).Select&lt;br /&gt;
    With Selection.ShapeRange&lt;br /&gt;
        With .Fill&lt;br /&gt;
            .Visible = msoTrue&lt;br /&gt;
            .Solid&lt;br /&gt;
            .ForeColor.SchemeColor = 2&lt;br /&gt;
            .Transparency = 0#&lt;br /&gt;
        End With&lt;br /&gt;
        With .Line&lt;br /&gt;
            .Weight = 0.75&lt;br /&gt;
            .DashStyle = msoLineSolid&lt;br /&gt;
            .Style = msoLineSingle&lt;br /&gt;
            .Transparency = 0#&lt;br /&gt;
            .Visible = msoTrue&lt;br /&gt;
            .ForeColor.SchemeColor = 64&lt;br /&gt;
            .BackColor.RGB = RGB(255, 255, 255)&lt;br /&gt;
        End With&lt;br /&gt;
    End With&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Worksheet Change Events==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_Change(ByVal Target As Excel.Range)&lt;br /&gt;
    MsgBox &amp;quot;Range &amp;quot; &amp;amp; Target.Address &amp;amp; &amp;quot; was changed.&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Worksheet_SelectionChange(ByVal Target As Range)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Private Sub Worksheet_SelectionChange(ByVal Target As Range) &lt;br /&gt;
      If Not Intersect(Range(&amp;quot;MyRange&amp;quot;), Target) Is Nothing Then&lt;br /&gt;
          Sheets(Array(&amp;quot;Sheet5&amp;quot;, &amp;quot;Sheet3&amp;quot;, &amp;quot;Sheet1&amp;quot;)).Select&lt;br /&gt;
      Else&lt;br /&gt;
          Me.Select&lt;br /&gt;
      End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>