Usuário com melhor resposta
Limpar o conteudo de células com valor negativo em um intervalo de tamanho variável

Pergunta
-
Boa noite.
Solicito a ajuda para criar uma macro VBA-Excel, que faça a limpeza das células que contenham valor negativo e que estão dentro de um intervalo que inicia na célula J1 e que muda a quantidade de linhas e colunas conforme os dados colados na planilha.
Consigo fazer a limpeza até a ultima linha preenchida na coluna J.
Sub LimparCélulas()
'percorre da linha 1 até a última linha preenchida na coluna J
For i = 1 To Cells(Rows.Count, 10).End(xlUp).Row
'se em J tiver células com valor negativo
If Cells(i, 10).Value <= 0 Then
'limpa conteúdo das células com valor negativo da coluna J
Cells(i, 10).ClearContents
End If
'próxima linha
Next i
End Sub
Mas como continuar esta limpeza até a ultima coluna preenchida ?
Respostas
-
Você poderia também avaliar o número da última coluna, da mesma forma que fez para linhas, trocando:
For COL = 4 To 200
por:
For COL = 4 To .Cells(2,.Columns.Count).End(xlToLeft).column
Abraço.
Filipe Magno
- Marcado como Resposta Oscar A D Jung quinta-feira, 20 de julho de 2017 00:47
Todas as Respostas
-
Oscar, tenta este bloco de código.
Antes de mais, se pretendes limpar números negativos, lembra-te que "0" não é negativo, portanto não podes escrever "<=0", mas sim "<0".
Declara a variável "mwksDados" fora do bloco de código e experimenta inserir o código abaixo.
Dim mwksDados As Excel.Worksheet Sub LimparCélulas() Dim lngRow As Long, COL As Long Set mwksDados = ThisWorkbook.Worksheets("Folha1") With mwksDados For COL = 4 To 200 For lngRow = 2 To .Cells(.Rows.Count, COL).End(xlUp).Row If .Cells(lngRow, COL).Value <0 THEN .Cells(lngRow, COL).Value="" End If Next Next COL End With End Sub
Espero que resulte.
M_A_S_L
-
No Brasil, em lugar de "espero que resulte", dizemos "espero que funcione" ou "espero que dê certo".
Anderson Diniz
- Sugerido como Resposta AndersonFDiniz2 terça-feira, 18 de julho de 2017 02:52
-
Pois mas o Excell não funciona, apresenta resultados. E em Portugal diz-se resultar, funcionar, dar certo, rolar sobre rodas, surtir efeito, e muitos outros termos.
Além disso um bloco de código funciona, sempre que não apresenta erros na sua execução quer apresente os resultados desejados ou não.
Sempre que se obtiveram os resultados desejados e corretos, resultou.
M_A_S_L
- Editado M_A_S_L sábado, 15 de julho de 2017 16:38
-
Você poderia também avaliar o número da última coluna, da mesma forma que fez para linhas, trocando:
For COL = 4 To 200
por:
For COL = 4 To .Cells(2,.Columns.Count).End(xlToLeft).column
Abraço.
Filipe Magno
- Marcado como Resposta Oscar A D Jung quinta-feira, 20 de julho de 2017 00:47
-