Solved

# fisrst visible row with autofilter

Posted on 2013-11-15
318 Views
need to determine the first and last visible cell to set limits for a loop.

the code below doesn't quite work.  I viewed the other solutions, but didn't get them to work.

code

Sub test()
Dim k As Integer
Dim strSearch As Variant
Dim searchedRow As Variant
Dim cntMDEP As Variant
Dim offset1, offset2, offset3 As Integer
Dim date1 As Variant
Dim CalcMode As Variant
Dim ViewMode As Variant
Dim dateFound As String
Dim myRange, RangeClear, rngLoop As Range
Dim nFld1, nCrit1 As Variant
Dim varPEG As Variant
Dim startLoop, endLoop As Double
Dim varTest As Variant

Set rngLoop = Range("A15", Cells(ActiveSheet.UsedRange.Rows.Count, _
Range("A15").Column)).SpecialCells(xlCellTypeVisible)

Dim v As Range
Set v = Range("A15:A" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
'15 is number of rows we start from
endLoop = 15 + rngLoop.Count
startLoop = "" ' get row number so know where to start

'do stuff here
For k = startLoop To endLoop

Next k

End Sub
Get-first-and-last-cell-from-aut.xlsm
0
Question by:jvantassel1
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3
• 2
• 2

LVL 43

Expert Comment

ID: 39652891
Try

Set rngLoop = Range("A15", Cells(ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count, _
Range("A15").Column)).SpecialCells(xlCellTypeVisible)
0

LVL 43

Assisted Solution

Saqib Husain, Syed earned 100 total points
ID: 39652893
Or better

activesheet.autofilter.range.resize(,1).SpecialCells(xlCellTypeVisible)
0

LVL 6

Accepted Solution

Michael earned 400 total points
ID: 39653636
You can also use the following code to loop through the visible rows of the filtered range:
``````Set rngLoop = Range("A15").CurrentRegion
Set rngLoop = rngLoop.Offset(1).Resize(rngLoop.Rows.Count - 1)

'do stuff here
For Each rw In rngLoop.SpecialCells(xlCellTypeVisible).Rows
Next
``````

Joop
0

LVL 1

Author Comment

ID: 39657437
Thanks for your help.  I didn't work this weekend, so couldn't test until today.

this works to walk through the rows.  but I tried to replace k, which was an integer with rw within the following code, but it's not working.  When the user clicks the link "... update dates..." the code searches each MDEP for the given row, then looks up the date from the "Schedule Room" tab and writes the date in either MB1, MB2 or PB if there is one.  Download the attached workbook to see all the code.  It was working well before I realized I need to do this by PEG.

With Worksheets("MB Status Tracker").Range("B15")
For offset1 = 3 To 5 ' DKB Added to go through the MB2 & PB
'For k = 1 To 159
For Each rw In rngLoop.SpecialCells(xlCellTypeVisible).Rows
Worksheets("MB Status Tracker").Activate
'.Offset(rw, 0).Activate 'replaced k with rw
searchedRow = ActiveCell.Row
.Offset(rw, 10).Value = ActiveCell.Row 'replaced k with rw
strSearch = .Offset(rw, 0).Value 'replaced k with rw

'go find the record
'the second parameter passed to findMDEP is the number you are searching for (1,2, or 3)
dateFound = findMDEP(strSearch, offset1 - 2)
If (dateFound <> "") Then
Worksheets("MB Status Tracker").Cells(searchedRow, offset1) = dateFound
'MsgBox findMDEP(strSearch)
'cntMDEP = cntMDEP + findMDEP(strSearch)
End If
Next rw 'k
Next offset1
End With
Worksheets("MB Status Tracker").Activate
POM-1620-Murder-Board-Dates-and-.xlsm
0

LVL 6

Expert Comment

ID: 39657570
k referred to a row number.
Now, rw is a range object. So, if you change rw to rw.row it should work.

Joop
0

LVL 1

Author Comment

ID: 39657614
Thanks, once I realized I could use rw.row it all came together.
0

LVL 1

Author Closing Comment

ID: 39657619
Joop's solution worked best for me.  I appreciate the help.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

### Suggested Solutions

In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, itâ€™s also â€¦
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns overâ€¦
Simple Linear Regression
###### Suggested Courses
Course of the Month6 days, 16 hours left to enroll