ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   VBA to address first visible cell in Column "D" after filtering (https://www.excelbanter.com/excel-discussion-misc-queries/122190-vba-address-first-visible-cell-column-d-after-filtering.html)

EagleOne

VBA to address first visible cell in Column "D" after filtering
 
2003

Having difficulty determining how to address in VBA the first visible
cell in Column "D" after the FilterCriteria changes.

Partial code follows:

Set Filter1 = Sheets("Constants Input").Range("A1:F" & _
Cells(Rows.Count, "D").End(xlUp).Row)
Filter1.AutoFilter Field:=2, Criteria1:="<"
Filter1.AutoFilter Field:=4, Criteria1:="=" & FilterCriteria

up to this point all is well


Set Filter2 = Nothing
Set Filter2 = Filter1.SpecialCells(xlCellTypeVisible)
'I thought that (after) Filter2 the Visible cells would be
' reset which they are on the screen
myCell.Offset(0, 3).Formula = Filter2.Range("E2").Formula

I thought that after filtering Filter1 that I could Set Filter2
(visable cells) and that Filter1.Range("E2").Formula and
Filter2.Range("E2").Formula would be different
but they are the same.

In short, I want all visible cells after filtering in Column E to have
exactly the same formula as in the first visible cell in Column E each
time that the FilterCriteria changes. What happens is that all visible
cell formulas are the same as the very first cell in E irrespective of
the FilterCriteria.

I need to know how in VBA to address that first cell in Column E;
AFTER each FilterCriteria changes.


Dave Peterson

VBA to address first visible cell in Column "D" after filtering
 
Maybe you could use something like:

dim myVRng as range
....

with worksheets("constants input")
with .autofilter.range
if .columns(1).cells.specialcells(xlcelltypevisible). cells.count = 1 then
'do nothing, only the header is visible
else
'go to column 5 (E) and come down a row and subtract a row to
'ignore the header
set myvrng = .columns(5).resize(.rows.count,1).offset(1,0) _
.cells.specialcells(xlcelltypevisible)

myvrng.formular1c1 = myvrng.cells(1).formular1c1
end if
end with
end with

Untested, uncompiled. Watch for typos.

myVRng is the visible cells in column 5 of the filtered range. myVRng.cells(1)
is the first cell in that visible range.


EagleOne wrote:

2003

Having difficulty determining how to address in VBA the first visible
cell in Column "D" after the FilterCriteria changes.

Partial code follows:

Set Filter1 = Sheets("Constants Input").Range("A1:F" & _
Cells(Rows.Count, "D").End(xlUp).Row)
Filter1.AutoFilter Field:=2, Criteria1:="<"
Filter1.AutoFilter Field:=4, Criteria1:="=" & FilterCriteria

up to this point all is well

Set Filter2 = Nothing
Set Filter2 = Filter1.SpecialCells(xlCellTypeVisible)
'I thought that (after) Filter2 the Visible cells would be
' reset which they are on the screen
myCell.Offset(0, 3).Formula = Filter2.Range("E2").Formula

I thought that after filtering Filter1 that I could Set Filter2
(visable cells) and that Filter1.Range("E2").Formula and
Filter2.Range("E2").Formula would be different
but they are the same.

In short, I want all visible cells after filtering in Column E to have
exactly the same formula as in the first visible cell in Column E each
time that the FilterCriteria changes. What happens is that all visible
cell formulas are the same as the very first cell in E irrespective of
the FilterCriteria.

I need to know how in VBA to address that first cell in Column E;
AFTER each FilterCriteria changes.


--

Dave Peterson

EagleOne

VBA to address first visible cell in Column "D" after filtering
 
Dave,

I think you have!! Thanks so much!!

Dennis

Dave Peterson wrote:
Maybe you could use something like:

dim myVRng as range
...

with worksheets("constants input")
with .autofilter.range
if .columns(1).cells.specialcells(xlcelltypevisible). cells.count = 1 then
'do nothing, only the header is visible
else
'go to column 5 (E) and come down a row and subtract a row to
'ignore the header
set myvrng = .columns(5).resize(.rows.count,1).offset(1,0) _
.cells.specialcells(xlcelltypevisible)

myvrng.formular1c1 = myvrng.cells(1).formular1c1
end if
end with
end with

Untested, uncompiled. Watch for typos.

myVRng is the visible cells in column 5 of the filtered range. myVRng.cells(1)
is the first cell in that visible range.


EagleOne wrote:

2003

Having difficulty determining how to address in VBA the first visible
cell in Column "D" after the FilterCriteria changes.

Partial code follows:

Set Filter1 = Sheets("Constants Input").Range("A1:F" & _
Cells(Rows.Count, "D").End(xlUp).Row)
Filter1.AutoFilter Field:=2, Criteria1:="<"
Filter1.AutoFilter Field:=4, Criteria1:="=" & FilterCriteria

up to this point all is well

Set Filter2 = Nothing
Set Filter2 = Filter1.SpecialCells(xlCellTypeVisible)
'I thought that (after) Filter2 the Visible cells would be
' reset which they are on the screen
myCell.Offset(0, 3).Formula = Filter2.Range("E2").Formula

I thought that after filtering Filter1 that I could Set Filter2
(visable cells) and that Filter1.Range("E2").Formula and
Filter2.Range("E2").Formula would be different
but they are the same.

In short, I want all visible cells after filtering in Column E to have
exactly the same formula as in the first visible cell in Column E each
time that the FilterCriteria changes. What happens is that all visible
cell formulas are the same as the very first cell in E irrespective of
the FilterCriteria.

I need to know how in VBA to address that first cell in Column E;
AFTER each FilterCriteria changes.


--

Dave Peterson




All times are GMT +1. The time now is 06:41 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com