Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#65871
Pessoal, boa tarde!!

É possível rodar um VBA para que eu consiga Classificar na coluna B= VENCIMENTO do mais recente para o mais antigo para o mais recente e vice versa, sendo que as colunas L, M E N estão bloqueadas.

Segue Planilha para quem quiser me ajudar, pode usar senha 123.

Obrigado!!
Você não está autorizado a ver ou baixar esse anexo.
#65904
Veja se é isso:
Código: Selecionar todos
Sub Asc()
    Range("B13").Sort Key1:=Range("B14"), _
    Order1:=xlAscending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom
End Sub

Sub Desc()
    Range("B13").Sort Key1:=Range("B14"), _
    Order1:=xlDescending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom
End Sub
Inovacao agradeceu por isso
#65907
Boa tarde, mucascosta!!

Não deu certo, não sei se fiz da forma errada, passo a passo.

ALT+F11, INSERIR/ MÓDULO, JOGUEI O CÓDIGO, mas quando fui na plan e bloqueiei com senha 123, e quando fui classificar disse que estava protegido.

preciso que ela deixe o usuário classificar mesmo com ela bloqueada.

Obrigado.
Você não está autorizado a ver ou baixar esse anexo.
#65927
Código: Selecionar todos
Sub Asc()
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet

    Range("B13").Sort Key1:=Range("B14"), _
    Order1:=xlAscending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom

'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub

Sub Desc()
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet

    Range("B13").Sort Key1:=Range("B14"), _
    Order1:=xlDescending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom

'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub

Sub ProtectSheet()
Dim Password 'Esta linha de código é opcional
Password = "123" 'Informe a senha da sua Planilha
ActiveSheet.Protect Password, True, True, True
End Sub

Sub UnProtectSheet()
Password = "123" 'Informe a senha da sua Planilha
ActiveSheet.Unprotect Password
End Sub
#65968
Boa tarde!!

Eu copiei o mesmo código e os botões para outra Planilha que tem as mesmas colunas.

Ele funcionou na planilha nova porem ele abre a antiga em segundo plano, ou seja ao clicar no botão ele funciona na nova mas abre a antiga em segundo plano, então como faço para que ele funciona somente na nova?

Aonde neste código ele se referencia ao nome da Planilha antiga para eu poder trocar o nome da planilha antiga pelo nome da planilha nova.

Sub Asc()
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet

Range("B13").Sort Key1:=Range("B14"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub

Sub Desc()
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet

Range("B13").Sort Key1:=Range("B14"), _
Order1:=xlDescending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub

Sub ProtectSheet()
Dim Password
Password = "123" 'Informe a senha da sua Planilha
ActiveSheet.Protect Password, True, True, True
End Sub

Sub UnProtectSheet()
Password = "123" 'Informe a senha da sua Planilha
ActiveSheet.Unprotect Password
End Sub


Muito obrigado!!
#66002
mucascosta escreveu: 22 Jul 2021 às 11:32 Aqui tá funcionando...
Boa tarde, mucascosta!!

Por favor pode me auxiliar na questão abaixo:
Eu copiei o mesmo código e os botões para outra Planilha que tem as mesmas colunas.

Ele funcionou na planilha nova porem ele abre a antiga em segundo plano, ou seja ao clicar no botão ele funciona na nova mas abre a antiga em segundo plano, então como faço para que ele funciona somente na nova?

Aonde neste código ele se referencia ao nome da Planilha antiga para eu poder trocar o nome da planilha antiga pelo nome da planilha nova.

Sub Asc()
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet

Range("B13").Sort Key1:=Range("B14"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub

Sub Desc()
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet

Range("B13").Sort Key1:=Range("B14"), _
Order1:=xlDescending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub

Sub ProtectSheet()
Dim Password
Password = "123" 'Informe a senha da sua Planilha
ActiveSheet.Protect Password, True, True, True
End Sub

Sub UnProtectSheet()
Password = "123" 'Informe a senha da sua Planilha
ActiveSheet.Unprotect Password
End Sub


Muito obrigado!!
#66027
Se vc copiou e colou os botões, sem mudar a atribuição de macros, ficaram vinculados a macros da planilha de origem...
Se foi isso, Click a direita dos botões, um de cada vez, -> Atribuir macros -> Macros em: escolher a planilha ativa -> selecionar Asc ou Desc -> OK
Inovacao agradeceu por isso
#66273
Bom dia, mucascosta!!
Tudo bem?

To precisando de uma ajudinha referente a Planilha, pode me ajudar?

Quando aciono o botão para CLASSIFICAR POR CRESCENTE OU DECRESCENTE, ele funciona direitinho.
Porem ao travar a Planilha ele desabilita o filtro das colunas e fico sem poder classificar de A a Z etc..

Tem como resolver isto?

Obrigado!!
#66291
Bom dia, mucascosta!!

Sim no final ela protege!!

Porem depois que ela protege, quando eu clico em qualquer coluna o filtro não funciona, pois a opção de classificar esta desabilitada.

Segue foto do que eu precisava fazer depois que ela protege.
Faz o teste por favor, clica nos botões e depois tenta usar o filtro de qualquer coluna, tenta classificar.
Imagem

Obrigado!!

Ajudou sim!!! Muito obrigado pela ajuda!

Planilha Lenta (Fórmula Matricial)

Caríssimo osvaldomp - 15 Set 2021 à[…]

Mais uma vez meu agradecimento ao osvaldomp, pela […]

Ajuda em Macro

Necessito de ajuda em criar uma macro para adicion[…]

Criar uma repetição em macro

exemplo: Nome idade Daniel […]

Boa Tarde Basole - 13 Set 2021 às 18:08 Pre[…]

Tratamentos de dados exel

Olá, @BrunoTSR . Sugestão: disp[…]

Bloqueio para editar célula

Existe a possibilidade com a utilizaç&atild[…]