fisrst visible row with autofilter

Posted on 2013-11-15
Last Modified: 2013-11-18
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.


Sub test()
Dim k As Integer
Dim strSearch As Variant
Dim searchedRow As Variant
Dim dateAddress 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, _
    Dim v As Range
    Set v = Range("A15:A" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    MsgBox "the cell address is: " & v.Address
    '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
Question by:jvantassel1
  • 3
  • 2
  • 2
LVL 43

Expert Comment

by:Saqib Husain, Syed
ID: 39652891

    Set rngLoop = Range("A15", Cells(ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count, _
LVL 43

Assisted Solution

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


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
    MsgBox Cells(rw.Row, 1).Address

Open in new window

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud


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

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.


Author Comment

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

Author Closing Comment

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

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

I previously wrote an article addressing the use of UBCD4WIN and SARDU. All are great, but I have always been an advocate of SARDU. Recently it was suggested that I go back and take a look at Easy2Boot in comparison.
Today companies are subjected to more-and-more data, and it won't stop any time soon.  But there are obvious opportunities for reducing data, particularly data duplicated among companies.
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question