quinta-feira, 3 de janeiro de 2019

Função para limpar uma planilha, via VBA

Quando trabalhamos com uma planilha que receberá novo conteúdo, muitas vezes precisamos apagar o conteúdo atual da mesma. Há diversas formas de fzer isso. Criei essa função genérica para limpar qualquer planilha.


Ela recebe como parâmetros:
wsDestino = Planilha que se deseja limpar
Exemplo de uso:
LimpaPlanilha Sheets("Buffer_1"), "A2", "F"
Neste caso, vai limpar uma planilha chamada Buffer_1, a partir da célula A2 até a célula F. Para saber a última linha e fechar o Range em F, verifico qual é a última linha preenchida observando o conteúdo da coluna A.



sCelulaInicial = Célula a partir da qual iniciaremos a limpeza. Passar no formato "A3", ou seja, endereço de célula baseado em Letra + Número da linha

scolunaFinal  = Letra da coluna final para formar um RANGE que se deseja limpar. Passar somente a letra da coluna

Sub LimpaPlanilha(wsDestino As Worksheet, sCelulaInicial As String, sColunaFinal As String)

Dim wsPlanAtual As Worksheet
Dim bAtualUpate As Boolean
'
' Preserva o status de screenpudating atual
'
bAtualUpate = Application.ScreenUpdating
'
' Preserva a planilha atual
'
Set wsPlanAtual = ActiveSheet
'
' Desliga o screenupdating.
'
Application.ScreenUpdating = False
'
' Ativa a planilha que será "limpa"
'
wsDestino.Activate
'
' Monta o RANGE que será "limpo"
'
wsDestino.Range("" & sCelulaInicial & ":" & sColunaFinal & wsDestino.Cells(Rows.Count, 1).END(xlUp).Row).Select
'
' Apaga o conteúdo
'
Selection.Clear
'
' Reativa a planilha antes da chamada da função
'
wsPlanAtual.Activate
'
' Restaura o ScreenUpdating anterior à chamada da função
'
Application.ScreenUpdating = bAtualUpate
'
' Libera memória com o conteúdo da variável de apoio
'
Set wsPlanAtual = Nothing
End Sub

Nenhum comentário:

Formatar texto numérico com zeros à esquerda

Sempre aparace uma necessidade de colocar zeros à esquerda em textos que representam números. Exemplo clássico é transformar o número que ...