VBA – Preenchimento Automático com uma Macro
In this Article
Este artigo demonstra como usar o preenchimento automático no VBA.
Preenchimento Automático em VBA
O preenchimento automático (AutoFill) é uma ótima ferramenta no Excel quando os dados são repetitivos ou sequenciais (como dias da semana, datas, meses do ano etc.). Normalmente, preencheríamos as primeiras células com os dados necessários e, em seguida, usaríamos o Preenchimento automático para copiar os dados necessários em um intervalo selecionado.
Tudo isso pode ser feito usando uma macro VBA.
Preenchimento Automático Usando Números Incrementais
Em primeiro lugar, em nosso código, podemos declarar duas variáveis Range.
Selection1 é o intervalo com os dados a serem preenchidos automaticamente – por exemplo, 1 e 2.
Selection2 é o intervalo inteiro a ser preenchido automaticamente, o que inclui o primeiro intervalo mais os espaços em branco a serem preenchidos automaticamente.
Em seguida, usamos o método AutoFill para preencher o segundo intervalo de seleção.
Public Sub MeuAutoFill()
'by AutomateExcel.com
'Declarar variáveis Range
Dim selection1 As Range
Dim selection2 As Range
'Definir variáveis range = seus respectivos intervalos
Set selection1 = Planilha1.Range("A1:A2")
Set selection2 = Planilha1.Range("A1:A12")
'Autofill
selection1.AutoFill Destination:=selection2
End Sub
Em seguida, podemos executar a macro para preencher automaticamente o intervalo (A1:A12).
Quando estivermos usando o método AutoFill, poderemos selecionar o tipo de preenchimento automático que desejamos executar. No exemplo acima, não especificamos o tipo de preenchimento automático, o que significa que o tipo padrão foi usado – nesse caso, incrementando os números em 1 em cada linha.
Preenchimento Automático Usando Meses
A macro para preenchimento automático usando meses é quase idêntica à usada para incrementar números, com uma exceção importante.
Public Sub AutoFillMeses()
'by AutomateExcel.com
'Declarar variáveis de range
Dim selection1 As Range
Dim selection2 As Range
'Definir variáveis range = seus respectivos intervalos
Set selection1 = Planilha1.Range("A1:A2")
Set selection2 = Planilha1.Range("A1:A12")
'Autofill de meses
selection1.AutoFill Destination:=selection2, Type:=xlFillMonths
End Sub
Quando preenchemos o tipo de preenchimento automático, recebemos um número de constantes do Excel para escolher. Se deixarmos isso de fora, o Excel determinará o tipo de dados a serem preenchidos com base nos dados originais fornecidos.
No entanto, o Excel é capaz de captar séries padrão como meses, dias da semana e números incrementais sem a necessidade de usar o argumento Type.
Preenchimento Automático Usando xlFillCopy
Se quisermos usar uma macro de preenchimento automático para copiar as informações para novas células, podemos usar a constante xlFillCopy.
Public Sub AutoFillCopiar()
Dim Selection1 As Range
Dim Selection2 As Range
Set Selection1 = Planilha1.Range("A1:A1")
Set Selection2 = Planilha1.Range("A1:A12")
Selection1.AutoFill Destination:=Selection2, Type:=xlFillCopy
End Sub
A execução dessa macro copiaria os dados de Range(“A1”) para Range(“A1:A12”) em vez de preencher automaticamente as células com os meses subsequentes a partir de “Jan”.
Preenchimento Automático Usando xlFlashFill
Quando precisamos converter texto em colunas no Excel, podemos usar a opção texto em colunas ou usar uma opção chamada Flash Fill. Isso é extremamente útil no VBA.
Veja os dados a seguir, por exemplo:
Podemos digitar o sobrenome “Tolley” na célula B2 e, em seguida, usar uma macro para preencher o restante dos dados.
Sub FlashFill()
Dim Selection1 As Range
Dim Selection2 As Range
Set Selection1 = Range("B2:B2")
Set Selection2 = Range("B2:B15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
End Sub
Em seguida, podemos repetir esse procedimento nas colunas C, D e E para obter os dados restantes.
Set Selection1 = Range("C2:C2")
Set Selection2 = Range("C2:C15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
Set Selection1 = Range("D2:D2")
Set Selection2 = Range("D2:D15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
Set Selection1 = Range("E2:E2")
Set Selection2 = Range("E2:E15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
Cada coluna será preenchida com os dados apropriados com base no valor da linha 2.
Codificação VBA facilitada
Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com conhecimento mínimo de codificação e com muitos recursos que economizam tempo para todos os usuários!