Import csv files, delete rows, arrange columns ....
Since the csv's are in a standard order, you can just put the required order
above the existing column headings, then sort left to right. That assumes
your headers are not really numbers. If they are numbers and you just want
to sort in numerical order, you don't need to add a dummy header.
The code would be
Range("A1").CurrentRegion.Sort _
Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlno,OrderCustom:=1, _
MatchCase:=False, Orientation:=xlLeftToRight
rwMin = Application.Match(application.Min(columns(3)), _
Columns(3),0)
rwMax = Appliction.Match(application.Max(columns(3)), _
Columns(3),0)
rows(rwMin).copy Destination:=worksheets("Main").Cells( _
rows.count,1).End(xlup)(2)
rows(rwMax).copy Destination:=worksheets("Main").Cells( _
rows.count,1).End(xlup)(2)
------
if you need to put in a row, then
Rows(1).Insert
Range("A1:AF1").Value = Array(16,3,9, . . .,2)
do the sort and copy
Rows(1).Delete
--
Regards,
Tom Ogilvy
"xadnora" wrote in message
...
I am importing 34 csv files (each into a different sheet) into one
workbook
with one "Main" sheet. e.g. "Main", "1", "2", ..... , "34". Once these
are
imported, I have to delete unwanted data from certain columns. Then
organize
the columns to a specific order to match the "Main" sheet. The column
heading is located in range("A16:AF16") on the csv imported tabs. Once it
is
arranged in this format, I have to find the max and min of certain columns
and select that corresponding row of data to copy to the "main" sheet. I
just need help getting started with the sorting process. This is what I
have
so far. TIA for any help you can provide.
Sub OpenCSVFiles()
Dim wks As Worksheet
Dim wkbk As Workbook
Dim rngchan As Range
Dim wksmain As Worksheet
Dim i As Integer
Set wksmain = Sheets("Main")
With Application.FileSearch
.NewSearch
.LookIn = "C:\test\csv"
.SearchSubFolders = False
.Filename = ".csv"
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
If .Execute() 0 Then
For i = 1 To .FoundFiles.Count
Set wkbk = Workbooks.Open(Filename:=.FoundFiles(i))
For Each wks In wkbk.Worksheets
dblLastRow = Range("A65535").End(xlUp).Row
Set rngchan = Range("A16:AF16")
wks.Copy after:=ThisWorkbook.Sheets(i) 'Change sheet name
Range("a1,b1,c1,d1,e1,h1,j1,m1,n1,v1:x1,z1,aa1:ad1 ,ai1,al1:aq1,ax1:ba1").Ent
ireColumn.Delete
This is where I need to arrange columns in a certain order from the column
heading in rngchan. In the "main" sheet it is in a certain order.
e.g.main
sheet 1,2,3,...34 and on csv tabs it is in 16,3,9,...2
Then I have to find max and min of column 3 and then copy those rows of
data
to the "main" sheet in a specified location.
Next wks
wkbk.Close
Next i
Else
MsgBox "There were no files found."
End If
End With
End Sub
|