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

Olá, @OCR . Segue uma soluç&ati[…]

Funcionou perfeitamente. Obrigado! Mas não[…]

A versão do seu Excel é em qual idio[…]

Anexa um exemplo, por favor.

proporcionalidade

Anexa um exemplo e diga qual o resultado esperado.

Se estiver falando de AutoFiltro, quando for prote[…]

Replicar Dados Entre Planilhas

Bom Dia! Funcionamento atual: abasteço […]

Rapaz, funcionou sim! Muito obrigado. As vezes a […]