View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
joel joel is offline
external usenet poster
 
Posts: 9,101
Default *.csv format change if .xlt save as .csv in Excel 2007

if you want a macro solution I have posted this code many times before. It
works when Excel starts to do crazy things with CSV files like your problem.

Modify the 2nd and 3rd lines as required.

Sub WriteCSV()

Const MyPath = "C:\temp\"
Const WriteFileName = "text.csv"

Const Delimiter = ","

Const ForReading = 1, ForWriting = 2, ForAppending = 3

Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0


Set fswrite = CreateObject("Scripting.FileSystemObject")




'open files
WritePathName = MyPath + WriteFileName
fswrite.CreateTextFile WritePathName
Set fwrite = fswrite.GetFile(WritePathName)
Set tswrite = fwrite.OpenAsTextStream(ForWriting, TristateUseDefault)

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

For RowCount = 1 To LastRow
LastCol = Cells(RowCount, Columns.Count).End(xlToLeft).Column
For ColCount = 1 To LastCol
If ColCount = 1 Then
OutputLine = Cells(RowCount, ColCount)
Else
OutputLine = OutputLine & Delimiter & Cells(RowCount, ColCount)
End If
Next ColCount
tswrite.writeline OutputLine
Next RowCount

tswrite.Close

Exit Sub
End Sub


"Khayae" wrote:

The previous programmer created an excel template file(.xlt) in lower version.

If we save this template file as [CSV (Comma delimited)(*.csv)] format in
(Excel 97-2003), the delimited comma will be until the last column that has
the data.

But if we save this template file as [CSV (Comma delimited)(*.csv)] format
in (Excel 2007), the delimited comma will be until the column at the end of
the sheet.

How can I do to be exactly the same as the lower versions (Excel 97-2003)?

Please see the attached files.

http://www.4shared.com/file/32023208/2dc0346d/Data.html

Thanking you in advance!

Khayae