I have a few questions. What version of Excel are you using?
You said in step 6, you "cut" the records that AG is null did you really man "cut", as in: removed from sheet1? also, you're writing a file with : a.WriteLine s1 & s2 & s3 & s4 & s5 & s6 but the values have no spaces or delimiters between them. I think I can do the entire process with a single macro: In my test data, it processed 65,536 records of 74 columns in 8 minutes, 32 seconds. '------------------------------------------------------------------------- Option Explicit Sub CvtTotext() Dim LastRow, LastCol Dim R, C, RowNI Dim FileName, FilePath, fs, f, StrOut, StrDelim Dim TElapsed, TMin, TSec, TStart, TStop '------------------------------------------ TStart = Timer Application.ScreenUpdating = False '------------------------------------------ ' Create "Not Imported" sheet '------------------------------------------ On Error Resume Next Application.DisplayAlerts = False Err.Clear Sheets("Not Imported").Select If (Err.Number = 0) Then Sheets("Not Imported").Delete Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = "Not Imported" On Error GoTo 0 Application.DisplayAlerts = True '------------------------------------------ Sheets("sheet1").Select LastRow = ActiveCell.SpecialCells(xlLastCell).Row LastCol = ActiveCell.SpecialCells(xlLastCell).Column For C = 1 To LastCol Sheets("Not Imported").Cells(1, C) = ActiveSheet.Cells(1, C).Value Next C FileName = InputBox(" Enter Text File Name ", "Text File") FilePath = "g:\Treas\Erick\Price File Test\" & FileName & ".txt" StrDelim = "|" Set fs = CreateObject("Scripting.FileSystemObject") If (fs.fileexists(FilePath)) Then fs.deletefile FilePath Set f = fs.CreateTextFile(FilePath, True) Application.StatusBar = "Processing " & LastRow & " records)" RowNI = 1 For R = 2 To LastRow If (R Mod 1000 = 0) Then Application.StatusBar = "Processing " & R & " of " & LastRow End If If (ActiveSheet.Range("BM" & R).Value <> ActiveSheet.Range("AE" & R).Value) Then RowNI = RowNI + 1 For C = 1 To LastCol Sheets("Not Imported").Cells(RowNI, C) = ActiveSheet.Cells(R, C).Value Next C Else StrOut = Cells(R, 32).Value '32 StrOut = StrOut & StrDelim & Cells(R, 3).Value '3 StrOut = StrOut & StrDelim & Format(Cells(R, 20).Value, "mmddyyyy") '20 StrOut = StrOut & StrDelim & Format(Cells(R, 21).Value * 100000000, "000000000000#") '21 StrOut = StrOut & StrDelim & " " StrOut = StrOut & StrDelim & "0000000000000" StrOut = StrOut & StrDelim & " " StrOut = StrOut & StrDelim & " " StrOut = StrOut & StrDelim & " " StrOut = StrOut & StrDelim & "0000000000" StrOut = StrOut & StrDelim & Format(Cells(R, 22).Value, "mmddyyyy") '22 StrOut = StrOut & StrDelim & "BNYM" StrOut = StrOut & StrDelim & "0000000000000" StrOut = StrOut & StrDelim & " " f.Writeline StrOut End If Next R f.Close '------------------------------------------ Application.StatusBar = False Application.ScreenUpdating = True '------------------------------------------ TStop = Timer TElapsed = TStop - TStart TMin = TElapsed \ 60 TSec = TElapsed Mod 60 MsgBox "Finished" & Chr(13) & TMin & " min " & TSec & " sec" '------------------------------------------ End Sub Paul ________________________________ From: Erick C <boricua2...@gmail.com> To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com> Sent: Thu, May 20, 2010 11:35:21 AM Subject: $$Excel-Macros$$ Need macro help - Need to sort, cut and paste Good morning everybody - I am still quite a novice when it comes to VB and writing codes, so any help I can get would be greatly appreciated. I am currently working on a code that takes data from a xls file that I download and convert it to a text file. I found an older posting with an example that I modified a bit to meet my format requirements. The formatting is working fine, but there is some manual cleanup that has to be done prior to running the macro that I would like to add to the macro. What I am trying to add to my current macro (in this order): 1. Sort the file by column 20 ascending (column T) 2. In cell AG2 (column 33), enter formula "=if(T2=E2, "OK","") 3. Copy formula from AG2 down column AG to last record 4. Sort the file by column 33 (column AG) 5. Create a new worksheet named "Not Imported" 6. Back in Sheet 1, cut any record where the AG cell is null and paste into Not Imported tab 7. Back in sheet 1, continue with the code I have (below): Public Sub CvtTotext() LastRow = Cells.Find("*", ActiveCell.SpecialCells(xlLastCell), , , xlByRows, xlPrevious).Row Filename = InputBox(" Enter Text File Name ", "Text File") FilePath = "g:\Treas\Erick\Price File Test\" & Filename & ".txt" Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile(FilePath, True) For Row = 3 To LastRow s1 = Cells(Row, 32).Value s2 = Cells(Row, 3).Value s3 = Format(Cells(Row, 20).Value, "mmddyyyy") s4 = Format(Cells(Row, 21).Value * 100000000, "000000000000#") s5 = " " s6 = "0000000000000" s7 = " " s8 = " " s9 = " " s10 = "0000000000" s11 = Format(Cells(Row, 22).Value, "mmddyyyy") s12 = "BNYM" s13 = "0000000000000" s14 = " " a.WriteLine s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11 & s12 & s13 & s14 Next a.Close MsgBox FilePath & " Created." End Sub If there are existing examples that do something close to what I am trying to do, I would be more than happy to try to rip them apart myself, I know everyone is quite busy. Any help I can get would be greatly appreciated! Thanks! -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> HELP US GROW !! We reach over 6,800 subscribers worldwide and receive many nice notes about the learning and support from the group.Let friends and co-workers know they can subscribe to group at http://groups.google.com/group/excel-macros/subscribe -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> HELP US GROW !! We reach over 6,800 subscribers worldwide and receive many nice notes about the learning and support from the group.Let friends and co-workers know they can subscribe to group at http://groups.google.com/group/excel-macros/subscribe