View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Per Jessen[_2_] Per Jessen[_2_] is offline
external usenet poster
 
Posts: 703
Default using filter based on last column

Hi

Look at this. I only changed it for FromWks.

Sub CADFixtureTable()
Dim FromWks As Worksheet
Dim ToWks As Worksheet
Dim RngToFilter As Range
Dim RngToCopy As Range
Dim LastCol As Long

Set FromWks = Worksheets("fixture counts")
Set ToWks = Worksheets("CAD Fixture Schedule")

ToWks.Range("A3:F500").ClearContents

With FromWks
.AutoFilterMode = False
LastCol = .Cells(14, Columns.Count).End(xlToLeft).Column
Set RngToFilter = .Range(.Cells(LastCol - 4), .Cells(.Rows.Count,
LastCol - 4).End(xlUp))
RngToFilter.AutoFilter Field:=1, Criteria1:="<"

If .AutoFilter.Range.Columns(1).Cells.SpecialCells
(xlCellTypeVisible) _
.Cells.Count = 1 Then

Else
With RngToFilter
Set RngToCopy = .Resize(.Rows.Count - 1, 6).Offset(1, -1)
End With
RngToCopy.Copy
ToWks.Range("a3").PasteSpecial Paste:=xlPasteValues
Sheets("Fixture Counts").Range("$AF$14:$AF$91").AutoFilter
Field:=1
'ToWks.Select
End If
End With
End Sub

Regards,
Per

On 30 Sep., 16:22, Scott wrote:
I currently have the code below which only looks at AF:14 to filter data. *I
would like to add/delete data... so I need the code to find the last column
with data and filter 4 cells left of that. * EX.. Currently AJ has last data
so needs to read AF:14 but if add 2 columns need to look at AM and filter
AH:14

Sub CADFixtureTable()

* * Dim FromWks As Worksheet
* * Dim ToWks As Worksheet
* * Dim RngToFilter As Range
* * Dim RngToCopy As Range

* * Set FromWks = Worksheets("fixture counts")
* * Set ToWks = Worksheets("CAD Fixture Schedule")

* * ToWks.Select
* * Range("A3:F500").Select
* * Selection.ClearContents

* * With FromWks
* * * * .AutoFilterMode = False

* * * * Set RngToFilter = .Range("AF14", .Cells(.Rows.Count, "AF").End(xlUp))
* * * * RngToFilter.AutoFilter Field:=1, Criteria1:="<"

* * * * If
.AutoFilter.Range.Columns(1).Cells.SpecialCells(xl CellTypeVisible) _
* * * * * .Cells.Count = 1 Then

* * * * Else
* * * * * * With RngToFilter

* * * * * * * * Set RngToCopy = .Resize(.Rows.Count - 1, 6).Offset(1, -1)
* * * * * * End With

* * * * * *RngToCopy.Copy
* * * * * *ToWks.Range("a3").PasteSpecial Paste:=xlPasteValues

* * * * Sheets("Fixture Counts").Select
* * * * ActiveSheet.Range("$AF$14:$AF$91").AutoFilter Field:=1

* * * * ToWks.Select
* * * * End If
* * End With

End Sub