Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 275
Default Date format changed after saving to .csv

I wrote a VBA to open a comma seperated .txt file in excel. I've a column of
data where the date format was changed from yyyy/mm/dd hh:mm:ss to yyyy-mm-dd
hh:mm:ss. I need to keep the original date format. How do I do this?
When I save the file back to comma seperated .txt file, the date format
changed to mm/dd/yyyy hh:mm.
Below are my code. Help to solve this issue is greatly appreciated

Private Sub OpenTxt()
'let user select the file to open
fn = Application.GetOpenFilename("Txt-files,*.txt", _
1, "Select Raw Dump File", , False)
If TypeName(fn) = "Boolean" Then Exit Sub
' the user didn't select a file
Debug.Print "Selected file: " & fn

Dim wb As Workbook

Workbooks.OpenText Filename:=fn, Origin:=437, _
StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Semicolon:=False, Comma:=True
End sub

Private Sub SaveAsTxt()

Dim strFileName As String
Dim lngLastSlash As Long
strFileName = Application.GetSaveAsFilename
lngLastSlash = InStrRev(strFileName, "\")
strFileName = Left(strFileName, lngLastSlash) & "" & _
Mid(strFileName, lngLastSlash + 1, 256)

ActiveWorkbook.SaveAs Filename:= _
strFileName, FileFormat:=xlCSV _
, CreateBackup:=False

i = 0
While InStr(i + 1, strFileName, Application.PathSeparator) 0
i = InStr(i + 1, strFileName, Application.PathSeparator)
Wend
strFileName = Right(strFileName, Len(strFileName) - i)

Dim wb1 As Workbook
For Each wb1 In Workbooks
If wb1.Name = strFileName Then wb1.Close False 'close without save
Next

End Sub

Thanks in Advance
Anthony
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Date format changed after saving to .csv

A CSV file is just a text file with a differrent extension. There is no
formating information in the file. I ran your save macro and then opened the
CSV file witth notebook. The data was saved in the correct format. the
problem is with the was excel reads a CSV file. The Read in excel is
converting the date into a oknow date format.

The only solution to your problem is to re-formatt the data before or after
it is read by excel. I'm don't know how you are opening this CSV file. If
you are opening it up from windows you can put a macro (on open) into your
personal.xls file that would format the worksheet with the correctt date
format. If you open the CSV from another workbook you can add to a macro the
format.

"Anthony" wrote:

I wrote a VBA to open a comma seperated .txt file in excel. I've a column of
data where the date format was changed from yyyy/mm/dd hh:mm:ss to yyyy-mm-dd
hh:mm:ss. I need to keep the original date format. How do I do this?
When I save the file back to comma seperated .txt file, the date format
changed to mm/dd/yyyy hh:mm.
Below are my code. Help to solve this issue is greatly appreciated

Private Sub OpenTxt()
'let user select the file to open
fn = Application.GetOpenFilename("Txt-files,*.txt", _
1, "Select Raw Dump File", , False)
If TypeName(fn) = "Boolean" Then Exit Sub
' the user didn't select a file
Debug.Print "Selected file: " & fn

Dim wb As Workbook

Workbooks.OpenText Filename:=fn, Origin:=437, _
StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Semicolon:=False, Comma:=True
End sub

Private Sub SaveAsTxt()

Dim strFileName As String
Dim lngLastSlash As Long
strFileName = Application.GetSaveAsFilename
lngLastSlash = InStrRev(strFileName, "\")
strFileName = Left(strFileName, lngLastSlash) & "" & _
Mid(strFileName, lngLastSlash + 1, 256)

ActiveWorkbook.SaveAs Filename:= _
strFileName, FileFormat:=xlCSV _
, CreateBackup:=False

i = 0
While InStr(i + 1, strFileName, Application.PathSeparator) 0
i = InStr(i + 1, strFileName, Application.PathSeparator)
Wend
strFileName = Right(strFileName, Len(strFileName) - i)

Dim wb1 As Workbook
For Each wb1 In Workbooks
If wb1.Name = strFileName Then wb1.Close False 'close without save
Next

End Sub

Thanks in Advance
Anthony

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
all cells in 2 workbooks have automaticlly changed to date format dloc Excel Worksheet Functions 0 February 11th 10 11:30 PM
General Text format automatically get changed to DATE Shweta Srivastava[_2_] Excel Discussion (Misc queries) 0 September 21st 09 10:57 AM
Date column changed to number format while concatenating Biju Jacob Excel Discussion (Misc queries) 1 June 12th 06 07:07 PM
Exported Date Format is Changed by Ecxcel Neil10365 Excel Programming 0 October 13th 05 12:00 AM
Exporting Data to Excel-Date Format Changed Nick B Excel Discussion (Misc queries) 3 May 3rd 05 12:43 PM


All times are GMT +1. The time now is 09:47 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"