Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi all
I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ...Protect Password:="justme" ...EnableSelection = xlNoRestrictions End With End Sub |
#2
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi
In Xl2003 you can set the protection in unlocked cells to allow the user to sort - so a macro will not be needed. Peter "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
#3
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
excel 2000 so no luck for that.
"Billy Liddel" wrote: Hi In Xl2003 you can set the protection in unlocked cells to allow the user to sort - so a macro will not be needed. Peter "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
#4
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Ok, I think I see the 'why' of your question - the code you have sorts the
entire UsedRange and not the area A6:A60 which is all you want to sort. I presume that in your real code you're using the correct password where needed, so... Sub sortit() Dim coltosort As Range Set coltosort = ActiveSheet.Range("A6:A60") ActiveSheet.Unprotect Password:="justme" coltosort.Select Selection.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet .Protect Password:="justme" .EnableSelection = xlNoRestrictions End With End Sub Note the change from .. to . for the interior of the With...End With statements. "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
#5
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi Latham
after copying your code, it gave me a error "400" "JLatham" wrote: Ok, I think I see the 'why' of your question - the code you have sorts the entire UsedRange and not the area A6:A60 which is all you want to sort. I presume that in your real code you're using the correct password where needed, so... Sub sortit() Dim coltosort As Range Set coltosort = ActiveSheet.Range("A6:A60") ActiveSheet.Unprotect Password:="justme" coltosort.Select Selection.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet .Protect Password:="justme" .EnableSelection = xlNoRestrictions End With End Sub Note the change from .. to . for the interior of the With...End With statements. "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
#6
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
range A4:A33 was also highlighted
"vcff" wrote: Hi Latham after copying your code, it gave me a error "400" "JLatham" wrote: Ok, I think I see the 'why' of your question - the code you have sorts the entire UsedRange and not the area A6:A60 which is all you want to sort. I presume that in your real code you're using the correct password where needed, so... Sub sortit() Dim coltosort As Range Set coltosort = ActiveSheet.Range("A6:A60") ActiveSheet.Unprotect Password:="justme" coltosort.Select Selection.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet .Protect Password:="justme" .EnableSelection = xlNoRestrictions End With End Sub Note the change from .. to . for the interior of the With...End With statements. "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
#7
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Works fine for me.
Did you copy it exactly as Rick posted? Gord Dibben MS Excel MVP On Sat, 20 Oct 2007 10:12:00 -0700, vcff wrote: range A4:A33 was also highlighted "vcff" wrote: Hi Latham after copying your code, it gave me a error "400" "JLatham" wrote: Ok, I think I see the 'why' of your question - the code you have sorts the entire UsedRange and not the area A6:A60 which is all you want to sort. I presume that in your real code you're using the correct password where needed, so... Sub sortit() Dim coltosort As Range Set coltosort = ActiveSheet.Range("A6:A60") ActiveSheet.Unprotect Password:="justme" coltosort.Select Selection.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet .Protect Password:="justme" .EnableSelection = xlNoRestrictions End With End Sub Note the change from .. to . for the interior of the With...End With statements. "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
#8
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Should be as I highlighted the code and paste it
"Gord Dibben" wrote: Works fine for me. Did you copy it exactly as Rick posted? Gord Dibben MS Excel MVP On Sat, 20 Oct 2007 10:12:00 -0700, vcff wrote: range A4:A33 was also highlighted "vcff" wrote: Hi Latham after copying your code, it gave me a error "400" "JLatham" wrote: Ok, I think I see the 'why' of your question - the code you have sorts the entire UsedRange and not the area A6:A60 which is all you want to sort. I presume that in your real code you're using the correct password where needed, so... Sub sortit() Dim coltosort As Range Set coltosort = ActiveSheet.Range("A6:A60") ActiveSheet.Unprotect Password:="justme" coltosort.Select Selection.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet .Protect Password:="justme" .EnableSelection = xlNoRestrictions End With End Sub Note the change from .. to . for the interior of the With...End With statements. "vcff" wrote: Hi all I created a button in a protected worksheet to allow sorting of data in column A6 to A60 which does not work. Pls help. I used the following code which I found in the discussion group. What I need is to sort only a range of datas in one column, eg A6 to A60 Sub sortit() Dim coltosort As Range Set coltosort = Application.InputBox(Prompt:= _ "Select A Column", Type:=8) ActiveSheet.Unprotect Password:="justme" ActiveSheet.UsedRange.Sort Key1:=coltosort.Cells(2), _ Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal With ActiveSheet ..Protect Password:="justme" ..EnableSelection = xlNoRestrictions End With End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
how to enable a macro in protected sheet | Excel Discussion (Misc queries) | |||
Sorting a protected sheet | Excel Worksheet Functions | |||
Macro Error when Sheet is Protected | Excel Discussion (Misc queries) | |||
use macro button to run macro in protected sheet | Excel Discussion (Misc queries) | |||
How can you create a macro on a protected sheet? | Excel Discussion (Misc queries) |