PC Review


Reply
 
 
Steve
Guest
Posts: n/a
 
      30th Apr 2010
Thanks Jacob Skaria the paste values is working now
I was hoping this would fix another issue I am having but it didn't. Once I
copy to sheet2 I want to save that sheet as a csv. The code creates an
archive copy (with timestamp suffix) and also a working copy (without time
stamp) that is uploaded via FTP. This is the code that I am using:

Dim strWksheet As String
Dim strPath As String
Dim strFileName As String
Dim strTimeStamp As String


strWksheet = "sheet2"
strPath = "mypath"
strFileName = "NewFile"
strTimeStamp = Format(Now(), "yyyy-mm-dd_hhmm")


Sheets(strWksheet).Copy
ActiveWorkbook.SaveAs Filename:=strPath & strFileName & _
strTimeStamp & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

'close the new worksheet
ActiveWindow.Close
Application.DisplayAlerts = False
Sheets(strWksheet).Copy
ActiveWorkbook.SaveAs Filename:=strPath & Left(strFileName, 10) _
& ".txt", FileFormat:=xlCSV, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True
'close the new worksheet

Application.ScreenUpdating = True


exit_Sub:
On Error Resume Next
Exit Sub

err_Sub:
Debug.Print "Error: " & Err.Number & " - (" & _
Err.Description & _
") - Sub: Copy_Data_Worksheet - " & Now()
GoTo exit_Sub


This works but is the filtered data has fewer lines of data on subsequent
runs there is an issue. The site I am uploading to requires that plank lines
be blank and as it is now the file uploads with commas separating the fields.
How can I clear the commas before upload?
Thanks
 
Reply With Quote
 
 
 
 
Jacob Skaria
Guest
Posts: n/a
 
      30th Apr 2010
I cannot recreate the issue you are mentioning...

When you try with the filter..the csv file generated will still have all
rows..isnt it?

--One option is to delete the unused rows (if that is within the used range)
before exporting to .csv
--OR try a row by row export to csv using code..

--
Jacob (MVP - Excel)


"Steve" wrote:

> Thanks Jacob Skaria the paste values is working now
> I was hoping this would fix another issue I am having but it didn't. Once I
> copy to sheet2 I want to save that sheet as a csv. The code creates an
> archive copy (with timestamp suffix) and also a working copy (without time
> stamp) that is uploaded via FTP. This is the code that I am using:
>
> Dim strWksheet As String
> Dim strPath As String
> Dim strFileName As String
> Dim strTimeStamp As String
>
>
> strWksheet = "sheet2"
> strPath = "mypath"
> strFileName = "NewFile"
> strTimeStamp = Format(Now(), "yyyy-mm-dd_hhmm")
>
>
> Sheets(strWksheet).Copy
> ActiveWorkbook.SaveAs Filename:=strPath & strFileName & _
> strTimeStamp & ".xls", FileFormat:= _
> xlNormal, Password:="", WriteResPassword:="", _
> ReadOnlyRecommended:=False, CreateBackup:=False
>
> 'close the new worksheet
> ActiveWindow.Close
> Application.DisplayAlerts = False
> Sheets(strWksheet).Copy
> ActiveWorkbook.SaveAs Filename:=strPath & Left(strFileName, 10) _
> & ".txt", FileFormat:=xlCSV, Password:="", WriteResPassword:="", _
> ReadOnlyRecommended:=False, CreateBackup:=False
> ActiveWindow.Close
> Application.DisplayAlerts = True
> 'close the new worksheet
>
> Application.ScreenUpdating = True
>
>
> exit_Sub:
> On Error Resume Next
> Exit Sub
>
> err_Sub:
> Debug.Print "Error: " & Err.Number & " - (" & _
> Err.Description & _
> ") - Sub: Copy_Data_Worksheet - " & Now()
> GoTo exit_Sub
>
>
> This works but is the filtered data has fewer lines of data on subsequent
> runs there is an issue. The site I am uploading to requires that plank lines
> be blank and as it is now the file uploads with commas separating the fields.
> How can I clear the commas before upload?
> Thanks

 
Reply With Quote
 
Jacob Skaria
Guest
Posts: n/a
 
      30th Apr 2010
Steve, If Joel's suggestion doesnt work try row by row exporting....The below
code assumes that Column A is mandatory....Change to suit...


Dim intFile As Integer, strData As String, lngRow as Long, lngCol As Long

intFile = FreeFile
Open strFileName For Output As #intFile
lngRow = 1
lngCol = Cells(1, Columns.Count).End(xlToLeft).Column
Do While Range("A" & lngRow) <> ""
If Trim(Range("A" & lngRow)) <> "" Then
strData = Join(WorksheetFunction.Transpose(WorksheetFunction. _
Transpose(Range("A" & lngRow).Resize(, lngCol))), ",")
Print #intFile, strData
End If
lngRow = lngRow + 1
Loop
Close #intFile

--
Jacob (MVP - Excel)


"Jacob Skaria" wrote:

> I cannot recreate the issue you are mentioning...
>
> When you try with the filter..the csv file generated will still have all
> rows..isnt it?
>
> --One option is to delete the unused rows (if that is within the used range)
> before exporting to .csv
> --OR try a row by row export to csv using code..
>
> --
> Jacob (MVP - Excel)
>
>
> "Steve" wrote:
>
> > Thanks Jacob Skaria the paste values is working now
> > I was hoping this would fix another issue I am having but it didn't. Once I
> > copy to sheet2 I want to save that sheet as a csv. The code creates an
> > archive copy (with timestamp suffix) and also a working copy (without time
> > stamp) that is uploaded via FTP. This is the code that I am using:
> >
> > Dim strWksheet As String
> > Dim strPath As String
> > Dim strFileName As String
> > Dim strTimeStamp As String
> >
> >
> > strWksheet = "sheet2"
> > strPath = "mypath"
> > strFileName = "NewFile"
> > strTimeStamp = Format(Now(), "yyyy-mm-dd_hhmm")
> >
> >
> > Sheets(strWksheet).Copy
> > ActiveWorkbook.SaveAs Filename:=strPath & strFileName & _
> > strTimeStamp & ".xls", FileFormat:= _
> > xlNormal, Password:="", WriteResPassword:="", _
> > ReadOnlyRecommended:=False, CreateBackup:=False
> >
> > 'close the new worksheet
> > ActiveWindow.Close
> > Application.DisplayAlerts = False
> > Sheets(strWksheet).Copy
> > ActiveWorkbook.SaveAs Filename:=strPath & Left(strFileName, 10) _
> > & ".txt", FileFormat:=xlCSV, Password:="", WriteResPassword:="", _
> > ReadOnlyRecommended:=False, CreateBackup:=False
> > ActiveWindow.Close
> > Application.DisplayAlerts = True
> > 'close the new worksheet
> >
> > Application.ScreenUpdating = True
> >
> >
> > exit_Sub:
> > On Error Resume Next
> > Exit Sub
> >
> > err_Sub:
> > Debug.Print "Error: " & Err.Number & " - (" & _
> > Err.Description & _
> > ") - Sub: Copy_Data_Worksheet - " & Now()
> > GoTo exit_Sub
> >
> >
> > This works but is the filtered data has fewer lines of data on subsequent
> > runs there is an issue. The site I am uploading to requires that plank lines
> > be blank and as it is now the file uploads with commas separating the fields.
> > How can I clear the commas before upload?
> > Thanks

 
Reply With Quote
 
Steve
Guest
Posts: n/a
 
      30th Apr 2010
This appears to be working
Thanks very much!

"joel" wrote:

>
> I can't guarentee my solution will work. Sometimes when data is written
> to a cell and then cleared excel still thinks the cell contains data. I
> delete the rows after the last row of data hoping this will solve your
> problems. The method I used to find the last row sometimes doesn't find
> the last row because a cell previously had data and you will get the
> same results you have now.
>
> Dim strWksheet As String
> Dim strPath As String
> Dim strFileName As String
> Dim strTimeStamp As String
>
>
> strWksheet = "sheet2"
> strPath = "mypath"
> strFileName = "NewFile"
> strTimeStamp = Format(Now(), "yyyy-mm-dd_hhmm")
>
>
> Sheets(strWksheet).Copy
> with Activesheet
> LastRow = .range("A" & rows.count).end(xlup).row
> rows((LastRow + 1) & ":" & rows.count).delete
> end with
> ActiveWorkbook.SaveAs Filename:=strPath & strFileName & _
> strTimeStamp & ".xls", FileFormat:= _
> xlNormal, Password:="", WriteResPassword:="", _
> ReadOnlyRecommended:=False, CreateBackup:=False
>
> 'close the new worksheet
> ActiveWindow.Close
> Application.DisplayAlerts = False
> Sheets(strWksheet).Copy
> with Activesheet
> LastRow = .range("A" & rows.count).end(xlup).row
> rows((LastRow + 1) & ":" & rows.count).delete
> end with
> ActiveWorkbook.SaveAs Filename:=strPath & Left(strFileName, 10) _
> & ".txt", FileFormat:=xlCSV, Password:="", WriteResPassword:="", _
> ReadOnlyRecommended:=False, CreateBackup:=False
> ActiveWindow.Close
> Application.DisplayAlerts = True
> 'close the new worksheet
>
> Application.ScreenUpdating = True
>
>
> exit_Sub:
> On Error Resume Next
> Exit Sub
>
> err_Sub:
> Debug.Print "Error: " & Err.Number & " - (" & _
> Err.Description & _
> ") - Sub: Copy_Data_Worksheet - " & Now()
> GoTo exit_Sub
>
>
> --
> joel
> ------------------------------------------------------------------------
> joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229
> View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=199718
>
> http://www.thecodecage.com/forumz
>
> .
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Create a macro to create excel line graph with coloured pointers anddata lables anuj datta Microsoft Excel Charting 1 30th Sep 2009 04:04 PM
how to create an auto reply rule/macro that wont create a new mess squalltheonly Microsoft Outlook Discussion 4 15th Nov 2008 04:03 PM
reset button, create excel, import table, send e-mail, create back-up matthew nance Microsoft Access 0 27th Jul 2004 06:52 PM
Read Bitmap and create Method to Create Image at runtime Mark Johnson Microsoft Dot NET Framework 1 28th Nov 2003 08:26 PM
Create user on win2k domain does not create mailbox on ex2k server Jeff Howard Microsoft Windows 2000 0 1st Oct 2003 12:21 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 06:39 AM.