Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por roggerwilliam 05 Jan 2019 às 05:17
Membro Novato
Mensagens: 3
Reputação: 0
#39765
Bom galera não sou expert no assunto, logo estou aqui pra buscar ajuda.
Pois bem, montei uma tabela dinamica ( que conforme vou precisando ela vai adicionando linhas de forma automática). Nesta tabela possuem algumas células que por sua vez são carregadas de fórmulas. Tais células são compreendidas em colunas e preciso mantê-las bloqueadas, de modo a evitar que sejam apagadas.
Como se pode notar, as colunas em destaque C,F,GJ são as referidas que devem ser bloqueadas/protegidas.
https://imgur.com/a/QyatCcO
Eis o problema, quando realizo o a proteção da planilha, as linhas automáticas não funcionam mais.
(encontrei alguns códigos em macro, mas não obtive sucesso.)


tenho uma segunda questão que seria direção que se toma quando é pressionado a tecla enter, que eu gostaria que fosse para frente e não para baixo. Já encontrei que tenho que alterar nas opões do Excel, até funciona, mas o problema e que tenho outras planilhas que seguem uma sequencia vertical, e ficar trocado a todo instante as configurações do Excel, acaba não sendo viável. Existe como fazer isso via macro ou VBA?
Por mprudencio 05 Jan 2019 às 21:24
Membro 2 Estrelas
Mensagens: 145
Reputação: 43
#39787
A primeira questao vc precisa desbloquear para atualizar e bloquear novamente.

Qto a segunda experimente estes codigos


Sub ParaaDireita ()

Application.MoveAfterReturnDirection = xlToRight

End Sub

Sub ParaBaixo ()

Application.MoveAfterReturnDirection = xlDown

End Sub
Por roggerwilliam 12 Jan 2019 às 16:55
Membro Novato
Mensagens: 3
Reputação: 0
#40066
Vejamos, o código informado para a ação de movimento a fazer na tecla ENTER, não consegui fazer funcionar.
Quanto ao bloqueio, não será possível ficar desbloqueando e bloqueando, uma vez que foge da proposta inicial, uma vez que não serei eu que irei manusear a mesma. Portanto a minha questão inicial permanece... quem puder ajudar, fico agradecido.

mprudencio escreveu:A primeira questao vc precisa desbloquear para atualizar e bloquear novamente.

Qto a segunda experimente estes codigos


Sub ParaaDireita ()

Application.MoveAfterReturnDirection = xlToRight

End Sub

Sub ParaBaixo ()

Application.MoveAfterReturnDirection = xlDown

End Sub
Por roggerwilliam 12 Jan 2019 às 17:26
Membro Novato
Mensagens: 3
Reputação: 0
#40067
Encontrei o seguinte código(para que possa adicionar novas linhas mesmo bloqueada), porém não compreendo muito. Fiz exatamente como indicado no site, porém sem sucesso. Alguém que compreende melhor VBA talvez possa me ajudar a entender o código e colocá-lo em execução.

Site: https://www.extendoffice.com/documents/ ... dable.html

Código: Selecionar todosSub Button1_Click()
Dim pswStr As String
'Update by ExtendOffice 20181106
    pswStr = "123"
    On Error Resume Next
   Application.ScreenUpdating = False
    ActiveSheet.Unprotect Password:=pswStr
       ActiveSheet.Range("A2").Select
        Range("Table1[[#Headers],[Total]]").Select
        Selection.End(xlDown).Select
        Selection.Offset(1, -4).Select
        ActiveCell.FormulaR1C1 = "new"
        ActiveSheet.Protect Password:=pswStr, DrawingObjects:=False, _
                        Contents:=True, Scenarios:=False, _
                        AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                        AllowFormattingRows:=True, AllowInsertingColumns:=True, _
                        AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
                        AllowDeletingColumns:=True, AllowDeletingRows:=True, _
                        AllowSorting:=True, AllowFiltering:=True, _
                        AllowUsingPivotTables:=True
    Selection.ClearContents
    Application.ScreenUpdating = True
End Sub