
Neste artigo vais aprender como podes criar uma rotina em VBA para eliminar as linhas em branco na tua folha de trabalho do Microsoft Excel. Vamos lá?
Existem certos processos que necessitamos de executar com alguma regularidade... e estou certo de que, muito provavelmente, já se deparou com a necessidade de eliminar linhas em branco Excel!
Sempre que existe essa necessidade de automatização, é sempre útil utilizar uma rotina de VBA. Neste caso, vou mostrar como podes criar uma rotina que permite eliminar todas as linhas em branco num determinado intervalo de dados.
Imaginando, então, um cenário em que tens uma tabela com diversos registos e que, por vezes, alguns utilizadores podem eliminar registos sem eliminarem a linha. Neste caso, o ficheiro acaba por ter vários registos em branco. O que, numa lógica de analise de dados, essas linhas em branco podem, em alguns casos, afetar os dados que obténs.
Não percas aqui todo o processo passo-a-passo e aprende a criar uma rotina para eliminares linhas em branco, de forma automática, no Microsoft Excel. Alguma dúvida envia-nos a tua mensagem... ficamos à tua espera!
Criar a rotina em VBA para eliminar as linhas em branco.
Vamos então iniciar a criação da rotina recorrendo a código VBA.
Acedemos ao menu Programador [Developer] e ao Visual Basic Editor.
Já no Visual Basic Editor, vamos criar um módulo onde vamos inserir a nossa rotina.
E criar a sub-rotina…
Definir o código para a rotina: As variáveis
Para executar o código vamos definir 3 variáveis do tipo Long que permitem armazenar a informação numérica dos registos de linhas. Neste caso são definidas como Long pois podem receber valores acima por exemplo de 32,767 (Integer).
Definir o código para a rotina: Performance do código
Para que o ciclo que vai ser gerado, que corre todas as linhas do intervalo de dados ativo possa ser executado mais rapidamente, podemos desabilitar a atualização do ecrã sempre que o ciclo [Loop] é executado. Este processo pode ser habilitado novamente no final da rotina.
Definir o código para a rotina: Encontrar o valor à última linha.
A última linha é calculada determinando o número de linhas do intervalo [UsedRange]. Após obtermos este valor podemos adicionar a primeira linha desse mesmo intervalo [UsedRange]. Esta adição deve ser feita apenas para assegurares que eliminas as linhas em branco que possam existir antes do intervalo.
ActiveSheet.UsedRange.Rows.Count
Conta as linhas do intervalo ativo [Used range]
ActiveSheet.UsedRange.Rows(1).Row
Define a primeira linha do intervalo ativo [Used range]
ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row – 1
A soma dos 2 valores permite obter o início e o final, do intervalo ativo.
Definir o código para a rotina: Criar o ciclo [Loop] para verificar as linhas em branco.
Agora para definir as linhas em branco a eliminar, basta executarmos um ciclo for… next que vai verificar as linhas do intervalo e depois eliminá-las. A Variável Total permite armazenar as linhas que são eliminadas para informar o utilizador.
A contagem das linhas é feita recorrendo à função COUNTA (CONTAR.VALOR) que pode ser executada pelo VBA através da expressão Application.WorksheetFunction.
Para terminar informamos o utilizador do número de linhas eliminadas com a função MsgBox.
Executar o código da Rotina.
Através de um botão ou mesmo acedendo à execução das macros podemos executar a rotina.
E verificar o código executado pela mensagem de informação ao utilizador:
O código completo da rotina pode ser copiado aqui:
Sub EliminarLinhas() Dim UltimaLinha As Long 'Variável para armazenar o número da última linha Dim Linha As Long 'Variável para armazenar o valor da linha atual Dim Total As Long 'Variável para armazenar o total de linhas Application.ScreenUpdating = False UltimaLinha = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1 For Linha = UltimaLinha To 1 Step -1 If Application.WorksheetFunction.CountA(Rows(Linha)) = 0 Then Rows(Linha).Delete Total = Total + 1 End If Next Linha Application.ScreenUpdating = True MsgBox Prompt:=Total & " linhas em branco foram eliminadas" End Sub
Consulte outros conteúdos relevantes:

Como eliminar linhas em branco com rotina VBA?
Neste novo vídeo vais aprender como podes criar uma rotina em VBA para eliminar as linhas em branco na tua folha de trabalho do Microsoft Excel. Vamos lá?

Ferramenta Goal Seek - Potencie-a com a ajuda do VBA!
Conhece, ou já alguma vez utilizou a ferramenta Goal Seek? Se não, fique a saber que é uma ferramenta bastante útil, na gestão...