VBA – Preenchimento Automático com uma Macro

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 19, 2023

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).

VBA AutoFill Numbers

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.

vbe opcoes autofill

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”.

VBA AutoFill Copy

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:

VBA AutoFill Text

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

VBA AutoFill FlashFill

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.

VBA AutoFill TextSeparated

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!

alt text

Saiba mais!

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA