ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Prevent selecting filtered rows in AutoFiltered Range (https://www.excelbanter.com/excel-programming/406199-prevent-selecting-filtered-rows-autofiltered-range.html)

PcolaITGuy

Prevent selecting filtered rows in AutoFiltered Range
 
I have a giant spreadsheet of server information using autofilters for the
columns. One of the uses I have for this spreadsheet is for performing
repetitive tasks by using a macro that is manually activated once I have a
range of server names selected. When the macro is activated, it takes the
selected range of server names and writes them to a text file that is later
called from a batch file.

The only problem is that filtered (hidden) rows are being included in the
selection. Is there a way to prevent this in code? Here is my code that
handles the server name selection:

Sub WriteFile()
Dim OutputFile As String
OutputFile = "C:\scripts\selection.txt"

Dim myRange As Range
Set myRange = Selection

Open OutputFile For Output As #1

For Each rngCell In myRange.Cells

inhalt = Cells(rngCell.Row, rngCell.Column).Value

Print #1, inhalt

Next rngCell

Close #1
ServerTool.Show vbModal
End Sub


Thanks in advance,

Scott


George Nicholson

Prevent selecting filtered rows in AutoFiltered Range
 
Try:
For Each rngCell In myRange.Cells.SpecialCells(xlCellTypeVisible)

or, if that doesn't work for some reason,

For Each rngCell In myRange.Cells
If Not rngCell.Hidden
Print #1, rngCell.Value
End if
Next

--
HTH,
George


"PcolaITGuy" wrote in message
...
I have a giant spreadsheet of server information using autofilters for the
columns. One of the uses I have for this spreadsheet is for performing
repetitive tasks by using a macro that is manually activated once I have a
range of server names selected. When the macro is activated, it takes the
selected range of server names and writes them to a text file that is
later
called from a batch file.

The only problem is that filtered (hidden) rows are being included in the
selection. Is there a way to prevent this in code? Here is my code that
handles the server name selection:

Sub WriteFile()
Dim OutputFile As String
OutputFile = "C:\scripts\selection.txt"

Dim myRange As Range
Set myRange = Selection

Open OutputFile For Output As #1

For Each rngCell In myRange.Cells

inhalt = Cells(rngCell.Row, rngCell.Column).Value

Print #1, inhalt

Next rngCell

Close #1
ServerTool.Show vbModal
End Sub


Thanks in advance,

Scott




Dave Peterson

Prevent selecting filtered rows in AutoFiltered Range
 
Maybe...

set myrange = nothing
on error resume next
Set myRange = Selection.cells.specialcells(xlcelltypevisible)
on error goto 0

if myrange is nothing then
msgbox "selection is all hidden!"
exit sub
end if

ps.
Couldn't:
inhalt = Cells(rngCell.Row, rngCell.Column).Value
be:
inhalt = rngCell.Value



PcolaITGuy wrote:

I have a giant spreadsheet of server information using autofilters for the
columns. One of the uses I have for this spreadsheet is for performing
repetitive tasks by using a macro that is manually activated once I have a
range of server names selected. When the macro is activated, it takes the
selected range of server names and writes them to a text file that is later
called from a batch file.

The only problem is that filtered (hidden) rows are being included in the
selection. Is there a way to prevent this in code? Here is my code that
handles the server name selection:

Sub WriteFile()
Dim OutputFile As String
OutputFile = "C:\scripts\selection.txt"

Dim myRange As Range
Set myRange = Selection

Open OutputFile For Output As #1

For Each rngCell In myRange.Cells

inhalt = Cells(rngCell.Row, rngCell.Column).Value

Print #1, inhalt

Next rngCell

Close #1
ServerTool.Show vbModal
End Sub

Thanks in advance,

Scott


--

Dave Peterson

PcolaITGuy

Prevent selecting filtered rows in AutoFiltered Range
 
Thanks guys for the advice. George...the first recommendation worked
perfectly, while the second gave me a strange pop-up that said simply "400".

I'm good to go!!

Thanks again,

Scott

"George Nicholson" wrote:

Try:
For Each rngCell In myRange.Cells.SpecialCells(xlCellTypeVisible)

or, if that doesn't work for some reason,

For Each rngCell In myRange.Cells
If Not rngCell.Hidden
Print #1, rngCell.Value
End if
Next

--
HTH,
George


"PcolaITGuy" wrote in message
...
I have a giant spreadsheet of server information using autofilters for the
columns. One of the uses I have for this spreadsheet is for performing
repetitive tasks by using a macro that is manually activated once I have a
range of server names selected. When the macro is activated, it takes the
selected range of server names and writes them to a text file that is
later
called from a batch file.

The only problem is that filtered (hidden) rows are being included in the
selection. Is there a way to prevent this in code? Here is my code that
handles the server name selection:

Sub WriteFile()
Dim OutputFile As String
OutputFile = "C:\scripts\selection.txt"

Dim myRange As Range
Set myRange = Selection

Open OutputFile For Output As #1

For Each rngCell In myRange.Cells

inhalt = Cells(rngCell.Row, rngCell.Column).Value

Print #1, inhalt

Next rngCell

Close #1
ServerTool.Show vbModal
End Sub


Thanks in advance,

Scott





PcolaITGuy

Prevent selecting filtered rows in AutoFiltered Range
 

Here's the final code:

Sub WriteFile()
Dim OutputFile As String
OutputFile = "C:\scripts\selection.txt"

Dim myRange As Range
Set myRange = Selection

Open OutputFile For Output As #1
For Each rngCell In myRange.Cells.SpecialCells(xlCellTypeVisible)
inhalt = Cells(rngCell.Row, rngCell.Column).Value

Print #1, inhalt
Next rngCell

Close #1
ServerTool.Show vbModal
'servertool is my form that uses the text file created

End Sub


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

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