Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have the following code that I use to save to a csv. The .csv file for
upload has a limit of 90 lines, therefore I would need to have multi files created with lines 1 to 90 on one file with a 1 on the end of the file name. Then lines 91 to 181 with a 2 on the end of the file name until all the lines are on different files. Is that possible? Sheets("PO upload").Copy ActiveSheet.SaveAs _ Filename:=strPOnum1 & " " & Format(Now, "mmddyy") & _ ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close savechanges:=False |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Aaron,
The macro below will do that - assumes that your output table starts in cell A1 and is contiguous. It will save the files in the folder where the workbook with the macro is stored. If it starts elsewhere, change the line With Range("A1").CurrentRegion to reflect the address of the upper left cell. HTH, Bernie MS Excel MVP Sub ExportTo90LineCSV() Dim fName As String Dim WholeLine As String Dim FNum As Integer Dim RowNdx As Long Dim ColNdx As Integer Dim StartRow As Long Dim EndRow As Long Dim StartCol As Integer Dim EndCol As Integer Dim I As Integer Dim FCount As Integer Dim strPOnum1 As String strPOnum1 = "Whatever" fName = ThisWorkbook.Path & "\" & strPOnum1 & " " & Format(Now, "mmddyy") Application.ScreenUpdating = False On Error GoTo EndMacro: FNum = FreeFile With Range("A1").CurrentRegion StartRow = .Cells(1).Row StartCol = .Cells(1).Column EndRow = .Cells(.Cells.Count).Row EndCol = .Cells(.Cells.Count).Column End With For I = StartRow To EndRow Step 90 FCount = FCount + 1 Open fName & " " & FCount For Output Access Write As #FNum For RowNdx = I To I + 89 WholeLine = "" For ColNdx = StartCol To EndCol If WholeLine = "" Then WholeLine = Cells(RowNdx, ColNdx).Text Else WholeLine = WholeLine & "," & Cells(RowNdx, ColNdx).Text End If Next ColNdx Print #FNum, WholeLine Next RowNdx Close #FNum Next I EndMacro: On Error GoTo 0 Application.ScreenUpdating = True End Sub "Aaron" wrote in message ... I have the following code that I use to save to a csv. The .csv file for upload has a limit of 90 lines, therefore I would need to have multi files created with lines 1 to 90 on one file with a 1 on the end of the file name. Then lines 91 to 181 with a 2 on the end of the file name until all the lines are on different files. Is that possible? Sheets("PO upload").Copy ActiveSheet.SaveAs _ Filename:=strPOnum1 & " " & Format(Now, "mmddyy") & _ ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close savechanges:=False |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Ooops - forgot the .csv extension for the filename. Change:
Open fName & " " & FCount For Output Access Write As #FNum to Open fName & " " & FCount & ".csv" For Output Access Write As #FNum HTH, Bernie MS Excel MVP "Bernie Deitrick" <deitbe @ consumer dot org wrote in message ... Aaron, The macro below will do that - assumes that your output table starts in cell A1 and is contiguous. It will save the files in the folder where the workbook with the macro is stored. If it starts elsewhere, change the line With Range("A1").CurrentRegion to reflect the address of the upper left cell. HTH, Bernie MS Excel MVP Sub ExportTo90LineCSV() Dim fName As String Dim WholeLine As String Dim FNum As Integer Dim RowNdx As Long Dim ColNdx As Integer Dim StartRow As Long Dim EndRow As Long Dim StartCol As Integer Dim EndCol As Integer Dim I As Integer Dim FCount As Integer Dim strPOnum1 As String strPOnum1 = "Whatever" fName = ThisWorkbook.Path & "\" & strPOnum1 & " " & Format(Now, "mmddyy") Application.ScreenUpdating = False On Error GoTo EndMacro: FNum = FreeFile With Range("A1").CurrentRegion StartRow = .Cells(1).Row StartCol = .Cells(1).Column EndRow = .Cells(.Cells.Count).Row EndCol = .Cells(.Cells.Count).Column End With For I = StartRow To EndRow Step 90 FCount = FCount + 1 Open fName & " " & FCount For Output Access Write As #FNum For RowNdx = I To I + 89 WholeLine = "" For ColNdx = StartCol To EndCol If WholeLine = "" Then WholeLine = Cells(RowNdx, ColNdx).Text Else WholeLine = WholeLine & "," & Cells(RowNdx, ColNdx).Text End If Next ColNdx Print #FNum, WholeLine Next RowNdx Close #FNum Next I EndMacro: On Error GoTo 0 Application.ScreenUpdating = True End Sub "Aaron" wrote in message ... I have the following code that I use to save to a csv. The .csv file for upload has a limit of 90 lines, therefore I would need to have multi files created with lines 1 to 90 on one file with a 1 on the end of the file name. Then lines 91 to 181 with a 2 on the end of the file name until all the lines are on different files. Is that possible? Sheets("PO upload").Copy ActiveSheet.SaveAs _ Filename:=strPOnum1 & " " & Format(Now, "mmddyy") & _ ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close savechanges:=False |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Worked like a charm! This will save me loads of time. Thank you so much!
"Bernie Deitrick" wrote: Ooops - forgot the .csv extension for the filename. Change: Open fName & " " & FCount For Output Access Write As #FNum to Open fName & " " & FCount & ".csv" For Output Access Write As #FNum HTH, Bernie MS Excel MVP "Bernie Deitrick" <deitbe @ consumer dot org wrote in message ... Aaron, The macro below will do that - assumes that your output table starts in cell A1 and is contiguous. It will save the files in the folder where the workbook with the macro is stored. If it starts elsewhere, change the line With Range("A1").CurrentRegion to reflect the address of the upper left cell. HTH, Bernie MS Excel MVP Sub ExportTo90LineCSV() Dim fName As String Dim WholeLine As String Dim FNum As Integer Dim RowNdx As Long Dim ColNdx As Integer Dim StartRow As Long Dim EndRow As Long Dim StartCol As Integer Dim EndCol As Integer Dim I As Integer Dim FCount As Integer Dim strPOnum1 As String strPOnum1 = "Whatever" fName = ThisWorkbook.Path & "\" & strPOnum1 & " " & Format(Now, "mmddyy") Application.ScreenUpdating = False On Error GoTo EndMacro: FNum = FreeFile With Range("A1").CurrentRegion StartRow = .Cells(1).Row StartCol = .Cells(1).Column EndRow = .Cells(.Cells.Count).Row EndCol = .Cells(.Cells.Count).Column End With For I = StartRow To EndRow Step 90 FCount = FCount + 1 Open fName & " " & FCount For Output Access Write As #FNum For RowNdx = I To I + 89 WholeLine = "" For ColNdx = StartCol To EndCol If WholeLine = "" Then WholeLine = Cells(RowNdx, ColNdx).Text Else WholeLine = WholeLine & "," & Cells(RowNdx, ColNdx).Text End If Next ColNdx Print #FNum, WholeLine Next RowNdx Close #FNum Next I EndMacro: On Error GoTo 0 Application.ScreenUpdating = True End Sub "Aaron" wrote in message ... I have the following code that I use to save to a csv. The .csv file for upload has a limit of 90 lines, therefore I would need to have multi files created with lines 1 to 90 on one file with a 1 on the end of the file name. Then lines 91 to 181 with a 2 on the end of the file name until all the lines are on different files. Is that possible? Sheets("PO upload").Copy ActiveSheet.SaveAs _ Filename:=strPOnum1 & " " & Format(Now, "mmddyy") & _ ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close savechanges:=False |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You're quite welcome! Thanks for letting me know that you got my code to work.
Bernie MS Excel MVP "Aaron" wrote Worked like a charm! This will save me loads of time. Thank you so much! |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
output to the same line in a Text file? | Excel Discussion (Misc queries) | |||
Subtotal: Totals line output | Excel Discussion (Misc queries) | |||
place output of several debug.print statements on the same line | Excel Programming | |||
Trying to start a second line ( ie use of enter key) in an output file | Excel Programming | |||
Any way to get around the 240-character line limit on text output? | Excel Discussion (Misc queries) |