13 janeiro 2009

VBA Excel: Excluindo linhas

Já se deparou com um tipico problema no Excel, no qual se tem uma lista enorme de dados, e para trabalhar com tal, de algum modo precisa filtrar aquilo, precisando apagar os registros correspondentes a uma linha, ou simplesmente apagar vários linhas com algum critério?
Bem, através do VBA podemos fazer isso de forma bem simples e fácil. Use o código:

ActiveCell.EntireRow.Delete

Este comando exclui a linha ativa. Incrementando o código, pode ser muito útil, colocando filtros de condição, por exemplo:

If [condição] Then
ActiveCell.EntireRow.Delete
End If

No meu caso, usei-o para uma lista enorme de dados, registros. No qual na coluna B havia o "volume"; e apenas precisava usar os registros com volume maior que zero. Então, um código que daria para certo para o meu caso [usei outro pois eram umas coisas mais complexas]:


Range("B2")
For cont = 1 To 17533
If ActiveCell <= 0 Then ActiveCell.EntireRow.Delete End If ActiveCell.Offset(1, 0) Next

Um outro modo manualmente de se fazer isso é usando o modo normal de filtro. Ou mesmo usando uma tabela dinâmica. Porém, você terá que filtrar, copiar os valores desejados, copiar e colar numa outra planilha, para ficar mais fácil. E a idéia é automatizar o processo. Construa o código de modo a Macro executar toda a parte operacional; ficando com você apenas a parte que realmente importa, observar, analisar e interpretar os dados. Ou então, se você tem um trabalho mais Controller, como meu caso, e que boa parte do que faz é apenas alimentar dados; deixar que as macros façam isso, diminui muito a perca de tempo que você ficará em tais processos.

0 comentários: