ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Row number of filtered row (https://www.excelbanter.com/excel-programming/405826-row-number-filtered-row.html)

DZ

Row number of filtered row
 
I need to get the row number of the second visible row in the current region.
The current region is filtered.

Example
If the current region starts at row 6, the second visible row is 28 because
the current region is filtered.

The following returns 7, because it not looking at visible rows only. I want
the return value to be 28, the second VISIBLE row.

Dim intRowNumber As Integer
intRowNumber = ActiveCell.CurrentRegion.Rows(2).Row

Thanks

Mike H

Row number of filtered row
 
Hi,

Areas is what you want
Area 1 = heading
Area 2 = First visible row etc

so this returns the row number of the second visible row

Sub Macro2()
If ActiveSheet.FilterMode = True Then
x = ActiveSheet.UsedRange.SpecialCells _
(xlCellTypeVisible).Areas(3).Row
End If
End Sub

Mike

"DZ" wrote:

I need to get the row number of the second visible row in the current region.
The current region is filtered.

Example
If the current region starts at row 6, the second visible row is 28 because
the current region is filtered.

The following returns 7, because it not looking at visible rows only. I want
the return value to be 28, the second VISIBLE row.

Dim intRowNumber As Integer
intRowNumber = ActiveCell.CurrentRegion.Rows(2).Row

Thanks


DZ

Row number of filtered row
 
Wonderful

Regards
Angelo DiBraccio

DZ

Dave Peterson

Row number of filtered row
 
Are you trying to find the first visible detail row (not including the headers)?

Or are you trying to find the row number of the second visible detail row?

Option Explicit
Sub testme()

Dim WhatRow As Long
Dim VRng As Range

With ActiveSheet.AutoFilter.Range
Set VRng = .Resize(.Rows.Count - 1, 1).Offset(1, 0) _
.Cells.SpecialCells(xlCellTypeVisible)
End With

'first visible row excluding the headers
WhatRow = VRng.Cells(1).Row
MsgBox WhatRow

If VRng.Areas(1).Cells.Count 1 Then
WhatRow = VRng.Cells(1).Row + 1
Else
WhatRow = VRng.Areas(2).Cells(1).Row
End If

MsgBox WhatRow

End Sub


DZ wrote:

I need to get the row number of the second visible row in the current region.
The current region is filtered.

Example
If the current region starts at row 6, the second visible row is 28 because
the current region is filtered.

The following returns 7, because it not looking at visible rows only. I want
the return value to be 28, the second VISIBLE row.

Dim intRowNumber As Integer
intRowNumber = ActiveCell.CurrentRegion.Rows(2).Row

Thanks


--

Dave Peterson

Dave Peterson

Row number of filtered row
 
And in case there aren't multiple areas -- or any visible details:

Option Explicit
Sub testme()

Dim WhatRow As Long
Dim VRng As Range

Set VRng = Nothing
On Error Resume Next
With ActiveSheet.AutoFilter.Range
Set VRng = .Resize(.Rows.Count - 1, 1).Offset(1, 0) _
.Cells.SpecialCells(xlCellTypeVisible)
End With
On Error GoTo 0

If VRng Is Nothing Then
MsgBox "no visible details"
Else
'first visible row excluding the headers
WhatRow = VRng.Cells(1).Row
MsgBox WhatRow

If VRng.Areas(1).Cells.Count 1 Then
WhatRow = VRng.Cells(1).Row + 1
Else
If VRng.Areas.Count 1 Then
WhatRow = VRng.Areas(2).Cells(1).Row
Else
WhatRow = -9999
End If
End If

MsgBox WhatRow
End If

End Sub


Dave Peterson wrote:

Are you trying to find the first visible detail row (not including the headers)?

Or are you trying to find the row number of the second visible detail row?

Option Explicit
Sub testme()

Dim WhatRow As Long
Dim VRng As Range

With ActiveSheet.AutoFilter.Range
Set VRng = .Resize(.Rows.Count - 1, 1).Offset(1, 0) _
.Cells.SpecialCells(xlCellTypeVisible)
End With

'first visible row excluding the headers
WhatRow = VRng.Cells(1).Row
MsgBox WhatRow

If VRng.Areas(1).Cells.Count 1 Then
WhatRow = VRng.Cells(1).Row + 1
Else
WhatRow = VRng.Areas(2).Cells(1).Row
End If

MsgBox WhatRow

End Sub

DZ wrote:

I need to get the row number of the second visible row in the current region.
The current region is filtered.

Example
If the current region starts at row 6, the second visible row is 28 because
the current region is filtered.

The following returns 7, because it not looking at visible rows only. I want
the return value to be 28, the second VISIBLE row.

Dim intRowNumber As Integer
intRowNumber = ActiveCell.CurrentRegion.Rows(2).Row

Thanks


--

Dave Peterson


--

Dave Peterson


All times are GMT +1. The time now is 10:23 AM.

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