Ir ao conteúdo
  • Cadastre-se

Excel macro/vba Limpar celulas com linha de Totais nao fixa


Ir à solução Resolvido por Márcio Rodrigues,

Posts recomendados

olá pessoal... :D

tambem quero contar com a ajuda de vcs!
tenho uma tabela que inicia na linha 5 vai de A ate U, sendo que a
partir da coluna M (inclusive) sao formulas; e as linhas 1 a 4 sao
cabeçalhos.

preciso de um vba/macro que limpe as celulas/linhas da planilha a
partir da celula A5 (inclusive) ate a L5, mas que limpe ate a ultima
linha antes da linha dos totais... o numero dessa linha do total nao
é pré-determinado, ou seja a linha do total pode estar na linha 20,
ou 25 ou 30 ou 35, ou 55, 116... nao é fixa;

tambem preciso de uma outra para incluir novas linhas mas sempre
entre a linha 5 e a linha dos totais (mesma situação anterior); sendo
que, da coluna M ate U sao formulas que precisam ser preservadas a
cada nova linha;

e tambem uma outra para excluir linhas, entre a linha 5 e a linha dos
totais que nao pode ser excluida;

obs.: essas macros precisam rodar com a planilha protegida por senha.

valeu. obrigado.

Link para o comentário
Compartilhar em outros sites

Experimente estes codigos.

 

 

Cole todos em um unico modulo.

 

Public LinhaTotal As Long
Sub Inserir()
With Sheets("Planilha1") 'troque planilha1 pelo nome da guia que você vai usar o codigo.
.Unprotect
LinhaTotal = .Range("A" & Rows.Count).End(xlUp).Row
.Rows(LinhaTotal - 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Protect
End With
End Sub
Sub Apagar()
With Sheets("Planilha1")
.Unprotect
LinhaTotal = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A5:L" & LinhaTotal - 1).ClearContents
.Protect
End With
End Sub
Sub Deletar()
With Sheets("Planilha1")
.Unprotect
LinhaTotal = .Range("A" & Rows.Count).End(xlUp).Row
.Rows(LinhaTotal - 1).Delete
.Protect
End With
End Sub
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

No codigo que postei nao tem nenhuma informação de senha. Como você nao postou sua planilha com o codigo nao consigo reproduzir para corrigir

 

Não excluir linhas com dados não foi informado no post inicial, logo nao houve preocupação para com isso.

 

Colocar uma mensagem de confirmação é bem simples.

 

Se tivesse no primeiro post postado a planilha como modelo a resposta seria mais completa

 

Aguardando postar a planilha com os codigos que você esta usando porque no que postei nao precisa de senha para bloquear nem desbloquear.

 

Compacte o arquivo para postar.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O que esta acontecendo neste exemplo é que o arquivo contem vinculos com outro arquivo

 

O nome desse arquivo que solicita para abrir, nao tem nada relacionado ao codigo, é 2018 Contr Geral Veic 1.xlsx

Qto ao problema de deletar a linha errada troque no codigo esta parte do codigo

 

.Rows(LinhaTotal - 1)
 

Por esta

 

.Rows(LinhaTotal - 2)

 

O codigo vai sempre atuar 2 linhas acima da ultima linha de dados.
 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

ok. muito obrigao, por enquanto.
corrigi o codigo de deletar as linhas, funcionou como queria!

ainda preciso complementar minha planilha:

1. não excluir linhas que estejam preenchidas com aviso de alerta caso a linha tenha dados: "Tem certeza que deseja excluir essa linha de dados?   SIM   NÃO"   (vai clicar na opção desejada).

2. aviso de alerta para "Limpar Planilha": "Tem certeza que deseja limpar toda a planilha? Isso apagará todos os dados!  SIM   NÃO"    (vai clicar na opção desejada).

3. e tmb executar os códigos com a planilha protegida por senha, mas sem pedir senha na execução das macros.

a planilha é a mesma com os mesmos códigos enviada anteriormente, somente com a correção de deletar.

desde ja agradeço... muito obrigado.

e aguardo 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Ola...  muito obrigado por tudo ate agora, Márcio. Desculpe a demora no retorno.

Atende sim amigo, é isso mesmo, muito bom, so preciso de mais alguns ajustes nas macros.

 

Gostaria de incorporar a macro "insertLines" ao "form_dadosveic" , ou vice-versa.... rsrs: de modo que insere a linha e grava os dados nesta nova linha, sendo que:

1. esse novo registro deve ser inserido sempre na "linha 5" da tabela, pra ter os mais recentes em primeiro. tentei inverter e nao consegui; até consegui mas nao ficou fluido...

2. manter a formatação das celulas da linha subsequente, ou seja da "linha 6";

3. nao executar "gravar" se os 3 primeiros campos do "form_dadosveic" não estiverem  prenchidos simultaneamente, neste caso avisar por alerta "dados incompletos nos campos veiculos, ano e placa" ou  algo assim. somente para os 3 primeiros de forma simultanea, porque tem informaçoes que incluimos posteriormente.

 

4. outra macro que vai me ajudar demais...  de pesquisa com essas 3 opções (veiculo, ano,  placa), buscando com as 3 informações  e/ou somente pela placa.

 

Tentei de varias formas mas nao consegui ajustar esses codigos.

Sempre da erro nas formulas, tmb insere a linha fora de ordem, ou fora da tabela... tem que ser na linha 5.

Agradeço muito pelo apoio de vcs todos...  aguardo. Segue anexo da planilha.

Muito obrigado.  Abraços!!!

image.png

controle v2.rar

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Ola... boa noite.

amigo, se não for pedir demais, por favor me ajude adequar esse codigo "deleteLines" somente tres ajustes:    
1.    preciso que execute modulo excluir com planilha protegida por senha;
2.    não incluir a linha 5 no roll de exclusao, iniciar a partir da linha 6 inclusive; linha 5 de receber dados, não pode ser excluida;
3.    o numero da "sequencia" no formulário deve corresponder ao respectivo numero da linha.

somente isso e vai me atender perfeitamente... com tudo e da forma exata que preciso!!!!  

é o mesmo código que você me enviou anteriormente. 

segue anexo.

Muito obrigado.. Abraços.    

controle v1.1.rar

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...