Página 1 de 1

Código VBA para limpar conteúdo de determinadas células

Enviado: 15 Ago 2019 às 15:22
por magnocampos
Pessoa, estou tentando bolar um código VBA para uma planilha de controle de estoque, porém com algumas dificuldades já que entendo muito pouco do assunto.

Preciso de um código macro para que, em uma tabela, ele veja qual é a linha cuja célula está ativa e limpe o conteúdo de determinadas colunas apenas no que que cruzam essa linha.

MÊS 1 2 3 4
Jan X X X X
Fev X X X X
Mar X X X X
Abr X X X X
Mai X X X X
Jun X X X X
Jul X X X X
Ago X X X X
Set X X X X
Out X X X X

Digamos que a célula C6 esteja ativa, gostaria que o código apagasse apenas o que estivesse na linha 6, colunas B, C, D e E ou seja, restasse apenas a coluna A desta linha preenchida.
Seguindo essa mesma lógica, se a célula ativa for a D11, gostaria que o código apagasse apenas o que estivesse na linha 11, colunas B, C, D e E, ou seja, restase apenas a coluna A desta linha preenchida.

Re: Código VBA para limpar conteúdo de determinadas células

Enviado: 15 Ago 2019 às 15:52
por eduardogrigull
Olá... Adicione esse código em um módulo, e chame através de botão ou alguma outra coisa...
Código: Selecionar todos
Sub ApagaLinha()

'Verificar se a célula ativa esta entre as colunas 2 e 5 ALTERAR A GOSTO
If ActiveCell.Column < 2 Or ActiveCell.Column > 5 Then Exit Sub

'Excluir
Plan1.Range(Plan1.Cells(ActiveCell.Row, 2), Plan1.Cells(ActiveCell.Row, 5)).ClearContents

End Sub

Código VBA para limpar conteúdo de determinadas células

Enviado: 15 Ago 2019 às 17:48
por magnopcampos
Funcionou! Obrigado.
Mas, pensando em aplicar este código em uma outra planilha onde as as células que eu quero que sejam apagadas na linha ativa se refiram não a colunas sequenciais, 2 a 5 como no modelo, mas sim a 2, 4 e 6 por exemplo, como ficaria?

Código VBA para limpar conteúdo de determinadas células

Enviado: 15 Ago 2019 às 18:44
por eduardogrigull
Caso esteja falando das linhas que precisam estar selecionadas pro código funcionar, ficaria assim:
Código: Selecionar todos
If ActiveCell.Column = 2 Or ActiveCell.Column = 4 or ActiveCell.Column = 6 Then Exit Sub
Caso esteja falando das linhas que serao apagadas, ai ficaria assim:
Código: Selecionar todos
Plan1.Cells(AtiveCell.Row,2).ClearContents
Plan1.Cells(AtiveCell.Row,4).ClearContents
Plan1.Cells(AtiveCell.Row,5).ClearContents

Re: Código VBA para limpar conteúdo de determinadas células

Enviado: 15 Ago 2019 às 18:45
por osvaldomp
Código: Selecionar todos
Sub LimpaCélulas()
 Union(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 4), Cells(ActiveCell.Row, 6)) = ""
End Sub

Re: Código VBA para limpar conteúdo de determinadas células

Enviado: 15 Ago 2019 às 20:06
por magnopcampos
Obrigado @osvaldomp e eduardogrigull, funcionando perfeitamente como eu precisava agora! Estava quebrando a cabeça, todos os códigos que uso geralmente consigo online e adapto, mas este não tinha achado ainda, obrigado!