1. Start with
==========
Application.Calculation = xlManual
Application.ScreenUpdating = False
finish with
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = true
2. Use range Copy/Paste
===================
instead of updating individual cell values of rows/columns
3. If formating cells or setting Print options
==============================
Use a blank (hidden ?) pre-formatted worksheet
and/or copy/paste formats.
As a rule : do any manual work possible before running the macro.
4. Have a progress indicator
====================
(eg.current record number) in the StatusBar. Better than a "dead"
screen.
5. Start it running then get a cup of coffee
==============================
this one works the best <grin>.
Need more info otherwise. if you are parsing records there is not much
you can do.