I have an application that, on opening, will open another .xls and copy some data from it, pasting it into a temp sheet so I don't have to keep opening the other .xls to refer to it.

In the workbook open event I have the following code:


Dim Path as string
Dim fileopen as string

Path = "c:\temp"
fileopen = "password"

Workbooks.Open (Path), Password:=FileOpen, ReadOnly:=True
    Range("C1:P999").Select
    Selection.Copy
    
    Application.DisplayAlerts = False
    ActiveWindow.Close savechanges:=False
    Application.DisplayAlerts = True

    Sheets("userlist").Visible = True
    Sheets("userlist").Select
    Range("C1:P999").Select
    Selection.ClearContents
    Range("c1").Select
    ActiveSheet.PasteSpecial
    Columns("C:P").Select
    Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xltrue, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

In the test environment, on both XP and Win 7 machines and on 93 different users PCs running various operating systems and all versions of Office from 2002 onwards, it works fine.

For just 1 user it fails. I've checked, when opening the workbook the data is pasted into cell A1, not cell C1 as it should, and the first character of the first entry in the range is missing. If I manually run the workbook open event code a 2nd time, it all works perfectly. No idea.....


The PC in question is an 8 year old Dell 3Ghz running 1Gb of RAM and Windows XP Home. Spreadsheet being opened in XL2003. Having the user defrag at the moment cos I don't think it's had one....ever.
Any ideas?