Tente usar um filtro automático. Isso permitirá que você mantenha a planilha protegida e permita que o usuário ordene colunas.
Eu tenho que classificar uma planilha protegida e preciso executar a dança "proteger o tipo desprotegido".
O problema é que estou duplicando (menos que perfeitamente) a própria funcionalidade de classificação do Excel, com os problemas previsíveis.
Configurei a planilha protegida e selecionada para ativar "Classificar" em "Permitir que usuários desta planilha" na janela "Proteger Planilha", mas isso não está funcionando como esperado.
Eu estava pensando em tentar abrir a caixa de diálogo Classificar do Excel (veja abaixo). Isso está exposto a nós devs?
Tente usar um filtro automático. Isso permitirá que você mantenha a planilha protegida e permita que o usuário ordene colunas.
Isso mostrará a caixa de diálogo Classificar (testada no XL 2010). Se a seleção atual não contiver conteúdo classificável, ela mostrará uma Msgbox com uma mensagem de erro. Esteja ciente de que, se uma coluna inteira for selecionada, ela não solicitará que o usuário expanda a seleção como o Excel normalmente faz. Uma opção é selecionar o UsedRange ou outro intervalo antes de mostrar o diálogo. Você vai querer experimentar.
O Excel 2007 tem um novo objeto Sort que armazena os campos a serem classificados, mas não vejo como ele interage com essa caixa de diálogo, se é que faz isso.
Você pode encontrar uma lista dos argumentos do xlDialogSort aqui .
Sub ShowSortDialog()
On Error Resume Next
Application.Dialogs(xlDialogSort).Show
If Err.Number = 1004 Then
MsgBox "Place the cursor in the area to be sorted"
End If
Err.Clear
End Sub