ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Advanced Filter Macro with InputBox use (https://www.excelbanter.com/excel-programming/315264-advanced-filter-macro-inputbox-use.html)

No Name

Advanced Filter Macro with InputBox use
 
I'd like to:

Highlight/Select a range say B5:B25
That contains (bob, carol, ted, ted, bob, alice, carol,
bob, ted, alice, carol......) << only 4 unique names are
in B5:B25 (bob, ted, carol alice)

Then run a macro that will using an Input box (where I
supply a cell reference, like J1 {enter}
and an Advance Filter is run and pastes to Range J1:J4
Alice, Bob, Carol
Ted (alphabetically).

Can this be done?

Debra Dalgleish

Advanced Filter Macro with InputBox use
 
You can use code similar to the following:

'=======================
Sub GetUnique()
Dim rng As Range

If Selection.Columns.Count 1 Then
MsgBox "Please select cells in one column only"
Exit Sub
End If
If Selection.Row = 1 Then
MsgBox "Selection cannot include row 1"
Exit Sub
End If
Set rng = Selection.Offset(-1, 0) _
.Resize(Selection.Rows.Count + 1, 1)

Columns("J:J").Clear
rng.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("J1"), Unique:=True
Range("J1").Delete shift:=xlUp
Range("J1").CurrentRegion.Sort Key1:=Range("J1"), _
Order1:=xlAscending, Header:=xlGuess
End Sub
'==========================

wrote:
I'd like to:

Highlight/Select a range say B5:B25
That contains (bob, carol, ted, ted, bob, alice, carol,
bob, ted, alice, carol......) << only 4 unique names are
in B5:B25 (bob, ted, carol alice)

Then run a macro that will using an Input box (where I
supply a cell reference, like J1 {enter}
and an Advance Filter is run and pastes to Range J1:J4
Alice, Bob, Carol
Ted (alphabetically).

Can this be done?



--
Debra Dalgleish
Excel FAQ, Tips & Book List
http://www.contextures.com/tiptech.html


Jim May

Advanced Filter Macro with InputBox use
 
Debra:
Thanks so much for the code; I pledge to understand it over the weekend;
Enjoy yours.........
Jim May

"Debra Dalgleish" wrote in message
...
You can use code similar to the following:

'=======================
Sub GetUnique()
Dim rng As Range

If Selection.Columns.Count 1 Then
MsgBox "Please select cells in one column only"
Exit Sub
End If
If Selection.Row = 1 Then
MsgBox "Selection cannot include row 1"
Exit Sub
End If
Set rng = Selection.Offset(-1, 0) _
.Resize(Selection.Rows.Count + 1, 1)

Columns("J:J").Clear
rng.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("J1"), Unique:=True
Range("J1").Delete shift:=xlUp
Range("J1").CurrentRegion.Sort Key1:=Range("J1"), _
Order1:=xlAscending, Header:=xlGuess
End Sub
'==========================

wrote:
I'd like to:

Highlight/Select a range say B5:B25
That contains (bob, carol, ted, ted, bob, alice, carol,
bob, ted, alice, carol......) << only 4 unique names are
in B5:B25 (bob, ted, carol alice)

Then run a macro that will using an Input box (where I
supply a cell reference, like J1 {enter}
and an Advance Filter is run and pastes to Range J1:J4
Alice, Bob, Carol
Ted (alphabetically).

Can this be done?



--
Debra Dalgleish
Excel FAQ, Tips & Book List
http://www.contextures.com/tiptech.html




Debra Dalgleish

Advanced Filter Macro with InputBox use
 
You're welcome. The code resizes the selected range to include the cell
above, because an Advanced Filter assumes there's a heading cell.

After extracting the unique values, the fake heading cell is deleted,
then the list is sorted.

Jim May wrote:
Debra:
Thanks so much for the code; I pledge to understand it over the weekend;
Enjoy yours.........
Jim May

"Debra Dalgleish" wrote in message
...

You can use code similar to the following:

'=======================
Sub GetUnique()
Dim rng As Range

If Selection.Columns.Count 1 Then
MsgBox "Please select cells in one column only"
Exit Sub
End If
If Selection.Row = 1 Then
MsgBox "Selection cannot include row 1"
Exit Sub
End If
Set rng = Selection.Offset(-1, 0) _
.Resize(Selection.Rows.Count + 1, 1)

Columns("J:J").Clear
rng.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("J1"), Unique:=True
Range("J1").Delete shift:=xlUp
Range("J1").CurrentRegion.Sort Key1:=Range("J1"), _
Order1:=xlAscending, Header:=xlGuess
End Sub
'==========================

wrote:

I'd like to:

Highlight/Select a range say B5:B25
That contains (bob, carol, ted, ted, bob, alice, carol,
bob, ted, alice, carol......) << only 4 unique names are
in B5:B25 (bob, ted, carol alice)

Then run a macro that will using an Input box (where I
supply a cell reference, like J1 {enter}
and an Advance Filter is run and pastes to Range J1:J4
Alice, Bob, Carol
Ted (alphabetically).

Can this be done?



--
Debra Dalgleish
Excel FAQ, Tips & Book List
http://www.contextures.com/tiptech.html






--
Debra Dalgleish
Excel FAQ, Tips & Book List
http://www.contextures.com/tiptech.html



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

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