View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein \(MVP - VB\)[_2406_] Rick Rothstein \(MVP - VB\)[_2406_] is offline
external usenet poster
 
Posts: 1
Default Save text file with value from Excel Cell stamped with date and time

Just change the assignment for the FileNameAndPath variable from this...

to this...

FileNameAndPath = "c:\Dir1\Dir2\etc\" & .Range("E5").Value & "(" & _
Date$ & ")(" & Replace(Time$, ":", "-") & ").txt"


I replaced the FileNameAndPath and when I run the macro it
highlights .Range("E5") and gives the following error:
Invalid or unqualified reference


I forgot to mention that you needed to move the line down one so it was
inside the With/End With block. See the full code with all the modifications
after my signature (you can copy/paste it).

I wish to have the name to be in the following format:
1234 27072008 11:36 pm.txt


You can't have it in that format... the colon (:) is an illegal character in
a filename. I'll use a dash, but as I said in my previous post, you can
change the dash to some other **legal** filename character. Here is a link
describing how to make a legal filename...

http://msdn.microsoft.com/library/de...ing_a_file.asp

Rick

Sub WriteDataOut()
Dim X As Long
Dim FF As Long
Dim LastRow As Long
Dim Dte As String
Dim Record As String
Dim TotalFile As String
Dim FileNameAndPath As String
With Worksheets("Sheet1")
FileNameAndPath = "c:\Dir1\Dir2\etc\" & .Range("E5").Value & _
Format(Now, " ddmmyyyy ") & _
Format(Now, "hh-mm am/pm") & ".txt"
LastRow = .Cells(Rows.Count, "C").End(xlUp).Row
For X = 10 To LastRow
Record = Space$(66)
Mid$(Record, 1) = .Cells(X, "C").Value
Mid$(Record, 10) = Format$(.Cells(X, "F").Value, "0000000000")
Dte = .Cells(X, "H").Value
Mid$(Record, 20) = Right$(Dte, 4) & Mid$(Dte, 4, 2) & Left$(Dte, 2)
Dte = .Cells(X, "H").Value
Mid$(Record, 28) = Right$(Dte, 4) & Mid$(Dte, 4, 2) & Left$(Dte, 2)
Mid$(Record, 36) = Format$(100 * Abs(.Cells(X, "K").Value) _
, "000000000000000")
Mid$(Record, 51) = .Cells(X, "L").Value
Mid$(Record, 56) = .Cells(X, "Q").Value
TotalFile = TotalFile & vbCrLf & Record
Next
FF = FreeFile
Open FileNameAndPath For Output As #FF
Print #FF, TotalFile
Close #FF
End With
End Sub