Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,560
Default selecting filtred range

Tom,
I found this bit of code, but I'm getting an Error 91.
I tried Dim rng As Range, but still nogo.
Any suggestion?

"Tom Ogilvy" wrote:

Set rng = ActiveSheet.Autofilter.Range
if rng.Columns(1).SpecialCells(xlVisible).Count 1 then
rng.offset(1,0).Resize(rng.rows.count-1).Copy _
Destination:= Worksheets(2).Range("A1")
Else
msgbox "No visible data"
End If

--
Regards,
Tom Ogilvy

"JH" wrote in message
...
Hello,

I'm using autofilter in my sheet. The sheet is filtred by many criteria

and
has a header. Criteria are changed in loop.
After filtering I'd like to copy filtred data copy to another sheet(the

same
sheet for all entries) but without the header.
I don't know how to recognize where data start. Some rows are alaways

hiden
and "first" row under the header may sometimes be 16th row sometimes 5th

row
etc.
And I don't want the header to copy together with filtred data
thanks in advance

JH





  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default selecting filtred range

What line do you get that error?

If it's the "Set rng = ActiveSheet.Autofilter.Range" line, then make sure that
the activesheet has Data|Filter|autofilter applied before you run the macro.

If it's not that line, post back with more info.

David wrote:

Tom,
I found this bit of code, but I'm getting an Error 91.
I tried Dim rng As Range, but still nogo.
Any suggestion?

"Tom Ogilvy" wrote:

Set rng = ActiveSheet.Autofilter.Range
if rng.Columns(1).SpecialCells(xlVisible).Count 1 then
rng.offset(1,0).Resize(rng.rows.count-1).Copy _
Destination:= Worksheets(2).Range("A1")
Else
msgbox "No visible data"
End If

--
Regards,
Tom Ogilvy

"JH" wrote in message
...
Hello,

I'm using autofilter in my sheet. The sheet is filtred by many criteria

and
has a header. Criteria are changed in loop.
After filtering I'd like to copy filtred data copy to another sheet(the

same
sheet for all entries) but without the header.
I don't know how to recognize where data start. Some rows are alaways

hiden
and "first" row under the header may sometimes be 16th row sometimes 5th

row
etc.
And I don't want the header to copy together with filtred data
thanks in advance

JH






--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,560
Default selecting filtred range

I see...no, the AutoFilter is NOT turned on...I'm using code to apply the
filter. Guess this won't work then.
Thanks anyway Dave!!

"Dave Peterson" wrote:

What line do you get that error?

If it's the "Set rng = ActiveSheet.Autofilter.Range" line, then make sure that
the activesheet has Data|Filter|autofilter applied before you run the macro.

If it's not that line, post back with more info.

David wrote:

Tom,
I found this bit of code, but I'm getting an Error 91.
I tried Dim rng As Range, but still nogo.
Any suggestion?

"Tom Ogilvy" wrote:

Set rng = ActiveSheet.Autofilter.Range
if rng.Columns(1).SpecialCells(xlVisible).Count 1 then
rng.offset(1,0).Resize(rng.rows.count-1).Copy _
Destination:= Worksheets(2).Range("A1")
Else
msgbox "No visible data"
End If

--
Regards,
Tom Ogilvy

"JH" wrote in message
...
Hello,

I'm using autofilter in my sheet. The sheet is filtred by many criteria
and
has a header. Criteria are changed in loop.
After filtering I'd like to copy filtred data copy to another sheet(the
same
sheet for all entries) but without the header.
I don't know how to recognize where data start. Some rows are alaways
hiden
and "first" row under the header may sometimes be 16th row sometimes 5th
row
etc.
And I don't want the header to copy together with filtred data
thanks in advance

JH






--

Dave Peterson

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default selecting filtred range

You can record a macro when you apply the filter and filter the way you want.

Then just add Tom's code to the bottom. It may even work!

David wrote:

I see...no, the AutoFilter is NOT turned on...I'm using code to apply the
filter. Guess this won't work then.
Thanks anyway Dave!!

"Dave Peterson" wrote:

What line do you get that error?

If it's the "Set rng = ActiveSheet.Autofilter.Range" line, then make sure that
the activesheet has Data|Filter|autofilter applied before you run the macro.

If it's not that line, post back with more info.

David wrote:

Tom,
I found this bit of code, but I'm getting an Error 91.
I tried Dim rng As Range, but still nogo.
Any suggestion?

"Tom Ogilvy" wrote:

Set rng = ActiveSheet.Autofilter.Range
if rng.Columns(1).SpecialCells(xlVisible).Count 1 then
rng.offset(1,0).Resize(rng.rows.count-1).Copy _
Destination:= Worksheets(2).Range("A1")
Else
msgbox "No visible data"
End If

--
Regards,
Tom Ogilvy

"JH" wrote in message
...
Hello,

I'm using autofilter in my sheet. The sheet is filtred by many criteria
and
has a header. Criteria are changed in loop.
After filtering I'd like to copy filtred data copy to another sheet(the
same
sheet for all entries) but without the header.
I don't know how to recognize where data start. Some rows are alaways
hiden
and "first" row under the header may sometimes be 16th row sometimes 5th
row
etc.
And I don't want the header to copy together with filtred data
thanks in advance

JH






--

Dave Peterson


--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,560
Default selecting filtred range

I recorded it, got one line which I put at the front...no go. Here's what I
have:

Sub MoveData()
Dim rng As Range

Application.Run "'Payroll Combo.xls'!ApplyFilter" '<<< New Line
Set rng = ActiveSheet.AutoFilter.Range
If rng.Columns(1).SpecialCells(xlVisible).Count 1 Then
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
Destination:=Worksheets("sheet1").Range("A2")
Else
MsgBox "No visible data"
End If

End Sub

I'm trying some new code to try and do the same thing, but not getting any
results, although it seems to be working. Maybe this is a better alternative,
if I can get it to work:
Sub CopyData()

Dim lRow As Long 'Last Row
Dim nRow As Long 'Next Row to copy to
Dim cnt As Long

lRow = Sheets("All_Jobs").Range("A" & Sheets("All_Jobs").Rows.Count).End(xlUp)
With Sheets("All_Jobs")
For cnt = 7 To lRow '<<<Data starts on Row 7
If .Range("A" & cnt) = ("FilterCriteria") Then '<<FilterCriteria is the
named range of two cells with a start date - end date, without the headers. I
THINK THE PROBLEM IS HERE!!
nRow = Sheets("sheet1").Range("A" & _
Sheets("sheet1").Rows.Count).End(xlUp).Offset(1, 0).Row
.Range("A" & cnt).Copy Sheets("sheet1").Range("A" & nRow + 1) '<< I
need to start the paste on Row 2. Row 1 has headers.
End If
Next
End With


End Sub


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default selecting filtred range

Try recording it as you select the range
then Data|Filter|autofilter.

I have no idea what ApplyFilter in payroll combo.xls actually does.

And this line is gonna cause trouble


David wrote:

I recorded it, got one line which I put at the front...no go. Here's what I
have:

Sub MoveData()
Dim rng As Range

Application.Run "'Payroll Combo.xls'!ApplyFilter" '<<< New Line
Set rng = ActiveSheet.AutoFilter.Range
If rng.Columns(1).SpecialCells(xlVisible).Count 1 Then
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
Destination:=Worksheets("sheet1").Range("A2")
Else
MsgBox "No visible data"
End If

End Sub

I'm trying some new code to try and do the same thing, but not getting any
results, although it seems to be working. Maybe this is a better alternative,
if I can get it to work:
Sub CopyData()

Dim lRow As Long 'Last Row
Dim nRow As Long 'Next Row to copy to
Dim cnt As Long

lRow = Sheets("All_Jobs").Range("A" & Sheets("All_Jobs").Rows.Count).End(xlUp)
With Sheets("All_Jobs")
For cnt = 7 To lRow '<<<Data starts on Row 7
If .Range("A" & cnt) = ("FilterCriteria") Then '<<FilterCriteria is the
named range of two cells with a start date - end date, without the headers. I
THINK THE PROBLEM IS HERE!!
nRow = Sheets("sheet1").Range("A" & _
Sheets("sheet1").Rows.Count).End(xlUp).Offset(1, 0).Row
.Range("A" & cnt).Copy Sheets("sheet1").Range("A" & nRow + 1) '<< I
need to start the paste on Row 2. Row 1 has headers.
End If
Next
End With

End Sub


--

Dave Peterson
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default selecting filtred range

Try recording it as you select the range
then Data|Filter|autofilter.

I have no idea what ApplyFilter in payroll combo.xls actually does.

And this line is gonna cause trouble

If .Range("A" & cnt) = ("FilterCriteria")

If filterCriteria is a 2 celled range, comparing one cell to those two cells
won't work.

maybe...

if .range("a" & cnt).value _
= worksheets("somesheetname").range("FilterCriteria" ).cells(1).value then
....



David wrote:

I recorded it, got one line which I put at the front...no go. Here's what I
have:

Sub MoveData()
Dim rng As Range

Application.Run "'Payroll Combo.xls'!ApplyFilter" '<<< New Line
Set rng = ActiveSheet.AutoFilter.Range
If rng.Columns(1).SpecialCells(xlVisible).Count 1 Then
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
Destination:=Worksheets("sheet1").Range("A2")
Else
MsgBox "No visible data"
End If

End Sub

I'm trying some new code to try and do the same thing, but not getting any
results, although it seems to be working. Maybe this is a better alternative,
if I can get it to work:
Sub CopyData()

Dim lRow As Long 'Last Row
Dim nRow As Long 'Next Row to copy to
Dim cnt As Long

lRow = Sheets("All_Jobs").Range("A" & Sheets("All_Jobs").Rows.Count).End(xlUp)
With Sheets("All_Jobs")
For cnt = 7 To lRow '<<<Data starts on Row 7
If .Range("A" & cnt) = ("FilterCriteria") Then '<<FilterCriteria is the
named range of two cells with a start date - end date, without the headers. I
THINK THE PROBLEM IS HERE!!
nRow = Sheets("sheet1").Range("A" & _
Sheets("sheet1").Rows.Count).End(xlUp).Offset(1, 0).Row
.Range("A" & cnt).Copy Sheets("sheet1").Range("A" & nRow + 1) '<< I
need to start the paste on Row 2. Row 1 has headers.
End If
Next
End With

End Sub


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
select from item and show data filtred... sal21 Excel Discussion (Misc queries) 0 December 2nd 06 02:03 PM
Selecting range in list of range names depending on a cell informa Courreges Excel Discussion (Misc queries) 2 June 19th 06 10:59 AM
Selecting a range Avi Excel Programming 3 February 8th 06 02:44 PM
Help please in selecting range dependent on another range MickJJ Excel Programming 2 January 10th 05 12:01 PM
Selecting a Range inside a range hcova Excel Programming 0 July 13th 04 03:26 PM


All times are GMT +1. The time now is 11:54 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"