If you want to see a fairly drastic example of why ScreenUpdating is important, run the following code. It takes roughly 45 times longer in Excel 2011 for me to run this swap without ScreenUpdating = false! This is a huge difference in time.
Sub testScreenUpdating()
    Dim i As Integer
    Dim numbSwitches As Integer
    Dim results As String
    'swap between sheets this number of times
    numbSwitches = 1000
    'keep track of time
    Dim startTime As Double
    startTime = Time
    'swap between sheets 1/2 (need both sheets or this will crash)
    For i = 1 To numbSwitches
        Sheets(1 + (i Mod 2)).Select
    Next i
    'get results
    results = "Screen Updating not disabled: " & Format(Time - startTime, "hh:mm:ss") & " seconds"
    startTime = Time
    'scenario 2 - screenupdating disabled
    Application.ScreenUpdating = False
    'swap between sheets 1/2 (need both sheets or this will crash)
    For i = 1 To numbSwitches
        Sheets(1 + (i Mod 2)).Select
    Next i
    Application.ScreenUpdating = True
    'get results for part two
    results = results & vbCrLf & "Screen Updating IS disabled: " & Format(Time - startTime, "hh:mm:ss") & " seconds"
    'show results
    MsgBox results
End Sub
Also, while we're on the topic of ways to increase efficiency, another key point is that Select, Selection, and Activate are rarely (if ever) necessary. When you record macros it will always use these but there are very few situations when you need to actually use them in code. Likewise, anything with Active in title (such as ActiveCell) normally is an indication you will have slower code because you presumably are selecting cells.
You can almost always refer to cells/worksheets specifically and avoid select. For example:
msgbox (Worksheets(1).Range("A1").value) 
will work regardless of whether you are currently on the first worksheet. A common new VBA mistake is to do something more like:
Worksheets(1).Select
msgbox (Range("A1").value)
which is an unneeded step.
This adds significant time to code runtimes.