title: How To Speed Up VBA Code
body: <p>I have an excel file with a VBA code (Not written by me)
  How this code works is user enters a 6 digit number in a user form, the VBA then checks another sheet and if this 6 digit number is present on the worksheet.
  If it does, it changes the stage, but if it doesn't it adds this 6 digit number to the worksheet</p>
  
  <p>It used to work perfectly, but now because the excel file has grown in the number of rows, almost 6000 rows, this code is become very slow, takes up to 20 seconds to update the sheet</p>
  
  <p>Can someone please help me speed this code up, or suggest another way to acheive it</p>
  
  <p>The code is below</p>
  
  <pre><code>Private Sub cmdPSDUdate_Click()
  Dim x
  If (Me.PSDUDateRow = "") + (Me.PSDStageCB.ListIndex = -1) Then Exit Sub
  With Sheets("psdata stage cals").ListObjects("PSDataStageCals")
      x = Application.Match(Val(Me.PSDUDateRow), .ListColumns(1).DataBodyRange, 0)
      If IsNumeric(x) Then
          .ListRows(x).Range(2) = Me.PSDStageCB.Value
      Else
          .ListRows.Add.Range = Array(Val(Me.PSDUDateRow), Me.PSDStageCB)
      End If
  End With
  Me.PSDUDateRow.Value = ""
  Me.PSDStageCB.Value = ""
  Me.PSDUDateRow.SetFocus
  End Sub
  </code></pre>
  
  <p>Thanks in advance</p>
  
  <p>Rahul</p>