# Combining csv files

I have been asked to combine several text (comma delimited files) into an Excel Workbook for analysis purposes.  They are all the exact same format with the same headings.  Is there an way to combine all files in a folder?
###### Who is Participating?

Commented:
This code should get you started. Save the workbook in the same directory as the CSVs. Record a macro to import one of the files and change in the code accordingly. Also change the path and target of the recorded macro.

Option Explicit

Sub FindCSV()

Dim strDocPath As String
Dim strCurrentFile As String

strDocPath = ThisWorkbook.Path & "\"
strCurrentFile = Dir(strDocPath & "*.csv*")

Do While strCurrentFile <> ""
'START OF RECORDED MACRO
'Change path and destination accordingly
"TEXT;" & ThisWorkbook.Path & "\" & strCurrentFile, Destination:=Range("\$A1000000").End(xlUp).Offset(1, 0))
.Name = "file1_1"
.FieldNames = True
.RowNumbers = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SaveData = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
'END OF RECORDED MACRO
strCurrentFile = Dir
Loop
End Sub

0

Fixer of ProblemsCommented:
Open the first one in a text editor like Notepad.  I would strongly suggest saving it under a new name immediately so you don't lose anything if there is a problem.  Then open the others and copy and paste them into the end of the first / new file and save them.  If they are exactly the same format, they will all load into Excel at once that way.  If for some reason there actually is a difference, then you will still have the original files that you can use.
0

Author Commented:
Thanks, Dave.  I thought of that.  Is that the only way you know of?
0

Commented:
I would use a combination of DOS command to create a new 'super' file, then open this file in excel and remove the duplicate headers ... see this for instructions http://workawesome.com/productivity/how-to-concatenate-multiple-csv-files-in-excel/

You can use a better directory than c:\ however ... just you the CD command to get to that directory, e.g.
cd c:
cd \path\to\better\directory
0

Fixer of ProblemsCommented:
If you only have to do it once, you'd be done by now.  If you have to do it frequently, then a program is better.
0

Manager IT Delivery- II at AonCommented:
You can use simple DOS command to merge multiple csv or text files.

copy *.csv NewCSVFile.csv

Copy all the csv files in a folder and create a batch file copycsv.bat in the same folder and save this command.
0

Author Commented:
Thanks, everyone.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.