ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   SpecialCells(xlCellTypeVisible) driving me nuts (https://www.excelbanter.com/excel-programming/419748-specialcells-xlcelltypevisible-driving-me-nuts.html)

signon77

SpecialCells(xlCellTypeVisible) driving me nuts
 

The following is the data in my spreadsheet

first second
jdjj jkkjk
sss sdd
sss fda
sa fdfd
hah klk

The following is the code I'm wrting to test it:

Sub test()

Dim r As Range

With Sheets("Sheet2")
.AutoFilterMode = False
.UsedRange.AutoFilter field:=1, Criteria1:="hah"
.UsedRange.AutoFilter field:=2, Criteria1:="klk"

Set r = .UsedRange.SpecialCells(xlCellTypeVisible)

.UsedRange.AutoFilter
End With

End Sub

Problem: Even though both the header and one row of data are clearly
visible, range "r" only ever returns the header row (r.rows.count is
always = 1 instead of 2) .

Any idea what might be causing this problem?

Rob


Peter T

SpecialCells(xlCellTypeVisible) driving me nuts
 
Try this -

Dim r as Range, ar as Range

' code

For Each ar In r.Areas
With ar
Debug.Print .Rows.Count, .Address
End With
Next

Regards,
Peter T


"signon77" wrote in message
...

The following is the data in my spreadsheet

first second
jdjj jkkjk
sss sdd
sss fda
sa fdfd
hah klk

The following is the code I'm wrting to test it:

Sub test()

Dim r As Range

With Sheets("Sheet2")
.AutoFilterMode = False
.UsedRange.AutoFilter field:=1, Criteria1:="hah"
.UsedRange.AutoFilter field:=2, Criteria1:="klk"

Set r = .UsedRange.SpecialCells(xlCellTypeVisible)

.UsedRange.AutoFilter
End With

End Sub

Problem: Even though both the header and one row of data are clearly
visible, range "r" only ever returns the header row (r.rows.count is
always = 1 instead of 2) .

Any idea what might be causing this problem?

Rob




shg[_45_]

SpecialCells(xlCellTypeVisible) driving me nuts
 

r.rows.count only counts the rows in the first area of r.

Try

Code:
--------------------
Sub test()
Dim r As Range
Dim nRow As Long

With Sheets("Sheet2")
.AutoFilterMode = False
.UsedRange.AutoFilter field:=1, Criteria1:="hah"
.UsedRange.AutoFilter field:=2, Criteria1:="klk"

Set r = .UsedRange.SpecialCells(xlCellTypeVisible)

.UsedRange.AutoFilter
nRow = Intersect(r(1).EntireColumn, r).Count
MsgBox "nRow = " & nRow
End With
End Sub
--------------------


--
shg
------------------------------------------------------------------------
shg's Profile: http://www.thecodecage.com/forumz/member.php?userid=13
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=27214


JLGWhiz

SpecialCells(xlCellTypeVisible) driving me nuts
 
See what you get if you use:

Set r = ActiveSheet.Cells.SpecialCells(xlCellTypeVisible)

"signon77" wrote:


The following is the data in my spreadsheet

first second
jdjj jkkjk
sss sdd
sss fda
sa fdfd
hah klk

The following is the code I'm wrting to test it:

Sub test()

Dim r As Range

With Sheets("Sheet2")
.AutoFilterMode = False
.UsedRange.AutoFilter field:=1, Criteria1:="hah"
.UsedRange.AutoFilter field:=2, Criteria1:="klk"

Set r = .UsedRange.SpecialCells(xlCellTypeVisible)

.UsedRange.AutoFilter
End With

End Sub

Problem: Even though both the header and one row of data are clearly
visible, range "r" only ever returns the header row (r.rows.count is
always = 1 instead of 2) .

Any idea what might be causing this problem?

Rob



Dave Peterson

SpecialCells(xlCellTypeVisible) driving me nuts
 
Check your other thread, too.

signon77 wrote:

The following is the data in my spreadsheet

first second
jdjj jkkjk
sss sdd
sss fda
sa fdfd
hah klk

The following is the code I'm wrting to test it:

Sub test()

Dim r As Range

With Sheets("Sheet2")
.AutoFilterMode = False
.UsedRange.AutoFilter field:=1, Criteria1:="hah"
.UsedRange.AutoFilter field:=2, Criteria1:="klk"

Set r = .UsedRange.SpecialCells(xlCellTypeVisible)

.UsedRange.AutoFilter
End With

End Sub

Problem: Even though both the header and one row of data are clearly
visible, range "r" only ever returns the header row (r.rows.count is
always = 1 instead of 2) .

Any idea what might be causing this problem?

Rob


--

Dave Peterson

signon77

SpecialCells(xlCellTypeVisible) driving me nuts
 
On Nov 9, 6:06*pm, Dave Peterson wrote:
Check your other thread, too.





signon77 wrote:

The following is the data in my spreadsheet


first * second
jdjj * *jkkjk
sss * * sdd
sss * * fda
sa * * *fdfd
hah * * klk


The following is the code I'm wrting to test it:


Sub test()


Dim r As Range


With Sheets("Sheet2")
* .AutoFilterMode = False
* .UsedRange.AutoFilter field:=1, Criteria1:="hah"
* .UsedRange.AutoFilter field:=2, Criteria1:="klk"


* Set r = .UsedRange.SpecialCells(xlCellTypeVisible)


* * .UsedRange.AutoFilter
*End With


End Sub


Problem: Even though both the header and one row of data are clearly
visible, range "r" only ever returns the header row (r.rows.count is
always = 1 instead of 2) .


Any idea what might be causing this problem?


Rob


--

Dave Peterson- Hide quoted text -

- Show quoted text -


Guys,

What can I say but thank you?

Who would have thought that range: "r" actually had multiple ranges
known as areas. This painful learning experience has been worth it. I
work at an investment bank in London supporting Middle Office
spreadsheets. Some of them are so bad and slow I silently despair. You
guys helping me like this means I don't have to write a relatively
slow "for loop" to get round the issue.

Thanks again,

Rob


All times are GMT +1. The time now is 05:54 AM.

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