I don't see where you're setting the variable: excelFile in the Editor, set a breakpoint at the statement: Do While Excelfile <> ""
and step through. and watch the Excelfile Variable does ever equal "Combined Manual Timesheets.xls"? I would use: If ucase(excelFile) <> ucase("Combined Manual Timesheets.xls") Then ... your code ... end if It's possible that the "combined Manual Timesheet.xls" file will show up in the list BEFORE all of the files are processed. having it Exit Do when it encounters it will cause the macro to finish before all files are processed. Paul ________________________________ From: Nasim <nbeiz...@gmail.com> To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com> Sent: Wed, January 5, 2011 11:41:10 PM Subject: $$Excel-Macros$$ Copy files in folder except one file Hi, I need to combine several excel files into one file. I create this new file in the directory that user chooses (this folder contains the files I want to copy). It loops trough the files and works perfectly except that it copies the "combined Manual Timesheets.xls" file and pastes it to itself (so the info is duplicated!) I get the folder from user in a function I found from net. how can I exclude this combined file from being copied? Thanks for your help in advance. Here is part of my code: Fpath = BrowseFolder(Caption:="Select the folder .") excelFile = Dir(Fpath & "\*.xls") ' I create the "Combined Manual Timesheets.xls" here Do While excelFile <> "" ' Do While excelFile <> "Combined Manual Timesheets.xls" or "" :This line did not work 'This IF does not work for some reason: If excelFile = "Combined Manual Timesheets.xls" Then Exit Do End If Workbooks.Open Filename:=Fpath & "\" & excelFile ' copy rows ActiveWorkbook.Sheets(1).Activate LastRow = ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row ActiveSheet.Rows("8:" & LastRow).EntireRow.Select Selection.Copy With Workbooks("Combined Manual Timesheets.xls") .Sheets(1).Activate LastRow = .Sheets(1).Cells(Rows.Count, "B").End(xlUp).Row End With With Workbooks("Combined Manual Timesheets.xls").Sheets(1).Range("A" & (LastRow + 1)) ' Paste:=8 will copy the columnwidth in Excel 2000 and higher .PasteSpecial Paste:=8 .PasteSpecial xlPasteValues End With Application.CutCopyMode = False ActiveWorkbook.Save Workbooks(excelFile).Close excelFile = Dir Loop Thanks, Nasim -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> Like our page on facebook , Just follow below link http://www.facebook.com/pages/discussexcelcom/160307843985936?v=wall&ref=ts -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> Like our page on facebook , Just follow below link http://www.facebook.com/pages/discussexcelcom/160307843985936?v=wall&ref=ts