Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por leowp
#71481
Boa tarde, estou com dificuldade em realizar o bloqueio de algumas células.
Elaborei uma planilha básica para cadastro de fornecedores da empresa em que trabalho.
O objetivo é que ao topo dela estejam liberados os campos para realizar o cadastro dos fornecedores mas que depois não seja possível deletá-los sem autorização.
Tentei utilizar um código VBA que encontrei mas não resolveu o meu problema, agradeço se alguém puder me auxiliar.
Você não está autorizado a ver ou baixar esse anexo.
#71488
Olá, @leowp .

O código abaixo replica os dados de A4:F4 na Tabela, ordena a Tabela e limpa A4:F4.

Antes de testar bloqueie as células da planilha e desbloqueie somente A4:F4.
#
Código: Selecionar todos
Sub CadastraProdutoOrdenaTabela()
 Dim LR As Long
  Application.ScreenUpdating = False
  ActiveSheet.Unprotect "123" 'altere a senha se desejar
  Range("A4:F4").Copy
  With ActiveSheet.ListObjects("Tabela2")
   LR = .Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
   Cells(LR + 1, 1).PasteSpecial xlValues
   .Sort.SortFields.Clear
   .Range.Sort key1:=.ListColumns(1), order1:=xlAscending, _
    Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  End With
  Range("A4:F4").Value = ""
  ActiveSheet.Protect "123" 'altere a senha aqui também se desejar
End Sub

#71513
Olá @osvaldomp ! Muito obrigado pela ajuda, funcionou perfeitamente.
No entanto, existe alguma maneira de bloquear a visualização do código da Macro? Para que não seja possível visualizar pelo código dela a senha da Planilha?
#71516
Olá, @leowp .

Para proteger o Projeto VBA:
abra o editor de VBA (Alt+F11) | menu Ferramentas | Propriedades de VBAProject | Proteção
#71523
Peço desculpas pelas perguntas de iniciante kkk, mas para liberar a opção de uso de filtros dinâmicos, eu vi por outro macro que fiz que seria necessário adicionar alguns argumentos

Fiz desta forma e funcionou, gostaria de saber se está correto ou se há necessidade de alguma alteração
Código: Selecionar todos
Sub CadastraProdutoOrdenaTabela()
 Dim LR As Long
  Application.ScreenUpdating = False
  ActiveSheet.Unprotect "123"
  Range("A4:F4").Copy
  With ActiveSheet.ListObjects("Tabela2")
   LR = .Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
   Cells(LR + 1, 1).PasteSpecial xlValues
   .Sort.SortFields.Clear
   .Range.Sort key1:=.ListColumns(1), order1:=xlAscending, _
    Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  End With
  Range("A4:F4").Value = ""
  ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
     

End Sub
#71526
leowp escreveu: ... qual a posição que devo inserir o AllowFiltering:True, ?
Duas boas fontes que poderão lhe ajudar em algumas das suas futuras dúvidas: o recurso Gravar Macro do Excel e o Sábio Google. ;)
Experimente:
ActiveSheet.Protect Password:="123", AllowFiltering:=True
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord