title: How to run Multiple Private Sub Worksheet_Change(ByVal Target As Range)?
body: <p>I need to run Multiple Private Sub Worksheet_Change(ByVal Target As Range) in a Asthma/COPD STATS Chart. Gary's Student gave some much appreciated help with SUB NUMBER TWO. Is this possible, and how can I do it?</p>
  
  <p>My code is as follows and works individually.</p>
  
  <pre><code>Private Sub Worksheet_Change(ByVal Target As Range)
  'Change Best Peak Flow and Date Achieved
  
  If Range("R7").Value &gt; Range("F7").Value Then
      Range("R7").Select
      Selection.Copy
      Range("F7").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
          :=False, Transpose:=False
      Range("Q5").Select
      Selection.Copy
      Range("K7").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
          :=False, Transpose:=False
      Application.CutCopyMode = False
  End If
  End Sub
  
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim rng As Range, r As Range, rv As Long
      Set rng = Intersect(Target, Range("C77:AD81"))
      If rng Is Nothing Then Exit Sub
      For Each r In rng
          rv = r.Value
          'Peak Flow Doctor Warning
          If rv = 180 Then
              MsgBox "''PEAK FLOW CRITICAL AT 180L/MIN''" &amp; vbCrLf &amp; "''PREDNISONE PROBABLY REQUIRED''" &amp; vbCrLf &amp; "''MAKE DOCTOR'S APPOINTMENTS ASAP''", vbInformation, "WARNING"
          End If
          If rv = 120 Then
              MsgBox "''PEAK FLOW CRITICAL AT 120L/MIN''" &amp; vbCrLf &amp; "''MAKE URGENT DOCTOR'S APPOINTMENTS''" &amp; vbCrLf &amp; "''OR GO TO A&amp;E IMMEDIATELY''", vbInformation, "CRITICAL WARNING"
          End If
          If rv &gt;= 450 Then
              MsgBox "''CHECK OR TEST PEAK FLOW METER''" &amp; vbCrLf &amp; "''IT MAY BE FAULTY AND GIVING FALSE HIGH's''", vbInformation, "WARNING"
          End If
      Next r
  End Sub
  
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim rng As Range, r As Range, rv As Long
      Set rng = Intersect(Target, Range("C93:AD93"))
      If rng Is Nothing Then Exit Sub
      For Each r In rng
          rv = r.Value
          'Weight Gain Warning
          If rv = 90 Then
              MsgBox "''LIKELY TO EXACERBATE COPD SYMPTOMS''" &amp; vbCrLf &amp; "''CHRONIC ASTHMA OR EMPHYSEMA PROBABLE''", vbCritical, "WARNING"
          End If
          If rv = 95 Then
              MsgBox "''IF SWELLING IN ANKLES PROBABLE FLUID RETENTION''" &amp; vbCrLf &amp; "''POSSIBILITY OF HEART FAILURE IF UNATTENDED''", vbCritical, "CRITICAL WARNING"
          End If
        Next r
  End Sub
  </code></pre>