Os 116 Melhores Exemplos de Códigos VBA para Excel

Olá! Seja muito bem vindo(a) a mais uma aula! Neste post vou compartilhar os 116 melhores exemplos de códigos VBA, organizados por categorias, para que você possa implementar no seu trabalho e transformar a forma como utiliza o Excel.

Esta semana, enquanto preparava conteúdo para o blog, pensei em como os códigos VBA podem facilitar a vida de quem trabalha com Excel no dia a dia.

Já me vi em várias situações onde precisava repetir tarefas cansativas ou resolver problemas que poderiam ser resolvidos com um simples clique — e é exatamente aí que as macros entram em cena.

Além disso, esses códigos não são apenas para programadores experientes; pelo contrário, eles também podem ser super úteis para quem está começando no Excel e quer economizar tempo.

Se você nunca usou macros antes, não se preocupe! Aliás, vou te mostrar como começar do zero e, a partir disso, aproveitar todo o potencial que os códigos VBA para Excel oferecem. Então, vamos nessa?

Conteúdo do Post

  1. O que é um Código VBA e uma Macro?
  2. Como usar Códigos VBA no Excel?
  3. Lista dos 116 Melhores Exemplos de Macros VBA para Iniciantes
  4. Baixe o PDF com todos os Códigos

1. O que é um Código VBA e uma Macro?

Se você já ouviu falar em VBA e macros, mas nunca usou, relaxa que eu vou te explicar de um jeito simples.

Uma macro é como um “atalho inteligente” no Excel. É um conjunto de passos que você grava ou escreve para automatizar tarefas repetitivas.

Por exemplo, digamos que você sempre formata sua planilha de um certo jeito: ajusta as colunas, coloca um cabeçalho, aplica bordas… Com uma macro, você faz isso tudo com um clique só!

Agora, o VBA (Visual Basic for Applications) é a linguagem de programação usada para criar essas macros. Em outras palavras, é nele que você pode personalizar seus códigos e deixar o Excel ainda mais poderoso.

O mais legal é que você não precisa ser um programador expert para começar. Na verdade, muitos códigos VBA já estão prontos e você só precisa copiar, colar e usar.

Por exemplo, sabe aquele trabalho chato e repetitivo que parece não ter fim? Com códigos VBA e macros para Excel, você economiza tempo e ainda impressiona a galera mostrando o que é capaz de fazer no Excel.

Então, que tal ver como isso funciona na prática?

2. Como usar Códigos VBA no Excel?

Se você nunca utilizou macros antes, não se preocupe! Eu vou te guiar passo a passo para colocar qualquer código VBA em prática no Excel.

Antes de tudo, certifique-se de que a guia Desenvolvedor está ativada na faixa de opções do seu Excel. É por lá que você terá acesso ao Editor de VBA.

Agora que a guia está ativa, siga este passo a passo:

Acesse o Editor de VBA

Primeiramente, vá até a guia Desenvolvedor e clique em Visual Basic. Em seguida, isso abrirá o editor onde você pode gerenciar e adicionar os códigos.

acesso à guia desenvolvedor e visual basic

Insira um Novo Módulo

Para começar, no lado esquerdo, na janela chamada VBAProject, clique com o botão direito no nome do seu arquivo (Pasta de Trabalho).

Em seguida, selecione a opção de inserir um novo módulo. Esse módulo funciona como um espaço em branco onde você vai colocar os seus códigos VBA para Excel.

como inserir novo módulo de código vba

Cole o Código VBA

Com o módulo aberto, basta colar o código que deseja usar. Para isso, copie o código de onde você encontrou (como neste post) e, em seguida, cole-o no editor. Depois disso, é só fechar o editor.

Execute a Macro

Agora, volte para a guia Desenvolvedor e clique no botão Macros. Em seguida, uma janela aparecerá mostrando todas as macros disponíveis no seu arquivo. Escolha a macro que você acabou de adicionar e, por fim, clique em Executar.

janela para escolha do código da macro

Dica Extra: Se você usa macros com frequência, vale a pena conhecer a Pasta Pessoal de Macros. Ela permite que você salve os códigos VBA para Excel e os utilize em qualquer planilha que abrir.

E pronto! Agora você já sabe como usar qualquer macro no Excel. É simples, não é?

Com isso, você pode automatizar várias tarefas e ganhar muito mais tempo no dia a dia. Então, vamos para os próximos exemplos?

3. Lista dos 116 Melhores Exemplos de Macros VBA para Iniciantes

Quando você começa a explorar o universo das macros, a quantidade de possibilidades pode até assustar. Mas calma, porque eu selecionei 116 exemplos incríveis de códigos VBA, organizados por categorias, para te ajudar a aproveitar ao máximo o Excel.

Esses códigos VBA para Excel são perfeitos para quem está começando, mas quer resultados rápidos e práticos.

Aqui você vai encontrar desde ações simples, como inserir números em sequência, até automações mais avançadas, como criar tabelas dinâmicas e gráficos de forma automática.

Bora conferir essa lista e deixar seu trabalho muito mais eficiente?

Códigos Básicos

1. Preencher uma coluna com números sequenciais
Este código preenche a primeira coluna da planilha com números de 1 a 100.

Sub PreencherSequencia()
    For i = 1 To 100
        Cells(i, 1).Value = i
    Next i
End Sub

2. Limpar o conteúdo de uma planilha
Remove todo o conteúdo das células da planilha ativa, sem alterar a formatação.

Sub LimparPlanilha()
    Cells.ClearContents
End Sub

3. Ajustar a largura de todas as colunas
Ajusta automaticamente a largura das colunas para caber o conteúdo.

Sub AjustarLarguraColunas()
    Cells.EntireColumn.AutoFit
End Sub

4. Inserir a data atual em uma célula específica
Insere a data atual na célula A1 da planilha ativa.

Sub InserirDataAtual()
    Range("A1").Value = Date
End Sub

5. Proteger a planilha com senha
Aplica proteção à planilha ativa utilizando a senha “1234”.

Sub ProtegerPlanilha()
    ActiveSheet.Protect Password:="1234"
End Sub

6. Desproteger a planilha com senha
Remove a proteção da planilha ativa usando a senha “1234”.

Sub DesprotegerPlanilha()
    ActiveSheet.Unprotect Password:="1234"
End Sub

7. Alterar o nome da planilha ativa
Renomeia a planilha ativa para “NovaPlanilha”.

Sub AlterarNomePlanilha()
    ActiveSheet.Name = "NovaPlanilha"
End Sub

8. Selecionar todas as células da planilha
Seleciona todas as células da planilha ativa.

Sub SelecionarTudo()
    Cells.Select
End Sub

9. Excluir linhas vazias na planilha
Verifica e exclui todas as linhas vazias da planilha ativa.

Sub ExcluirLinhasVazias()
    Dim rng As Range
    For Each rng In ActiveSheet.UsedRange.Rows
        If Application.WorksheetFunction.CountA(rng) = 0 Then
            rng.Delete
        End If
    Next rng
End Sub

10. Salvar o arquivo automaticamente
Salva o arquivo atual sem exibir a janela de confirmação.

Sub SalvarArquivo()
    ThisWorkbook.Save
End Sub

11. Alterar a cor de fundo de uma célula específica
Muda o fundo da célula B2 para amarelo.

Sub AlterarCorDeFundo()
    Range("B2").Interior.Color = RGB(255, 255, 0)
End Sub

12. Inserir valores em uma tabela automaticamente
Preenche uma tabela de 10×5 com o produto da linha pelo número da coluna.

Sub PreencherTabela()
    For i = 1 To 10
        For j = 1 To 5
            Cells(i, j).Value = i * j
        Next j
    Next i
End Sub

Códigos de Formatação

13. Alterar a cor de fundo da célula com base no valor
Este código altera a cor de fundo da célula A1 para vermelho se o valor for negativo e verde se for positivo.

Sub CorDeFundoBaseadoEmValor()
    If Range("A1").Value < 0 Then
        Range("A1").Interior.Color = RGB(255, 0, 0) ' Vermelho
    Else
        Range("A1").Interior.Color = RGB(0, 255, 0) ' Verde
    End Sub
End Sub

14. Aplicar formatação de texto para maiúsculas
Esse código converte todo o texto na célula A1 para letras maiúsculas.

Sub Maiusculas()
    Range("A1").Value = UCase(Range("A1").Value)
End Sub

15. Aplicar formatação de texto para minúsculas
Esse código converte todo o texto na célula A1 para letras minúsculas.

Sub Minusculas()
    Range("A1").Value = LCase(Range("A1").Value)
End Sub

16. Alterar o estilo da célula para itálico
Aplica a formatação de itálico ao texto da célula B2.

Sub TextoItalicizado()
    Range("B2").Font.Italic = True
End Sub

17. Adicionar uma borda inferior em uma célula
Este código adiciona uma borda inferior à célula A1.

Sub BordaInferior()
    Range("A1").Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub

18. Definir uma célula como negrito e itálico
Este código aplica as formatações de negrito e itálico à célula A2.

Sub NegritoEItalico()
    With Range("A2").Font
        .Bold = True
        .Italic = True
    End With
End Sub

19. Alterar a cor da borda de uma célula
Define a cor da borda da célula A1 para azul.

Sub AlterarCorBorda()
    With Range("A1").Borders(xlEdgeBottom)
        .Color = RGB(0, 0, 255)
    End With
End Sub

20. Alterar o formato da célula para data
Este código formata a célula A1 como data no formato “dd/mm/aaaa”.

Sub FormatarComoData()
    Range("A1").NumberFormat = "dd/mm/yyyy"
End Sub

21. Adicionar uma borda ao redor de um intervalo de células
Adiciona bordas ao redor do intervalo A1:C3.

Sub AdicionarBordasIntervalo()
    Range("A1:C3").Borders.LineStyle = xlContinuous
End Sub

22. Aplicar um estilo de número personalizado
Este código aplica um formato de número personalizado na célula A1.

Sub FormatarNumeroPersonalizado()
    Range("A1").NumberFormat = "#,##0.00"
End Sub

23. Alterar o alinhamento vertical do texto
Este código alinha o texto da célula A1 no centro verticalmente.

Sub AlinharVertical()
    Range("A1").VerticalAlignment = xlCenter
End Sub

24. Ajustar a altura da linha automaticamente
Este código ajusta automaticamente a altura da linha 1 para caber o conteúdo.

Sub AjustarAlturaLinha()
    Rows("1:1").AutoFit
End Sub

Códigos para Impressão

25. Imprimir a planilha ativa
Este código imprime a planilha ativa diretamente.

Sub ImprimirPlanilhaAtiva()
    ActiveSheet.PrintOut
End Sub

26. Imprimir um intervalo específico de células
Imprime o intervalo de células A1:B10 da planilha ativa.

Sub ImprimirIntervalo()
    Range("A1:B10").PrintOut
End Sub

27. Imprimir a planilha com uma área de impressão definida
Este código define uma área de impressão e imprime a planilha.

Sub ImprimirComAreaDefinida()
    ActiveSheet.PageSetup.PrintArea = "$A$1:$C$20"
    ActiveSheet.PrintOut
End Sub

28. Imprimir a planilha em PDF
Imprime a planilha ativa como um arquivo PDF.

Sub ImprimirComoPDF()
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Usuario\Desktop\Planilha.pdf"
End Sub

29. Imprimir várias cópias de uma planilha
Imprime 3 cópias da planilha ativa.

Sub ImprimirMultiplasCopias()
    ActiveSheet.PrintOut Copies:=3
End Sub

30. Imprimir a planilha em uma página
Ajusta a planilha para imprimir em uma única página.

Sub ImprimirEmUmaPagina()
    With ActiveSheet.PageSetup
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    ActiveSheet.PrintOut
End Sub

31. Imprimir somente a primeira página
Este código imprime apenas a primeira página da planilha.

Sub ImprimirPrimeiraPagina()
    ActiveSheet.PrintOut From:=1, To:=1
End Sub

32. Imprimir a planilha na orientação paisagem
Imprime a planilha ativa na orientação paisagem.

Sub ImprimirPaisagem()
    ActiveSheet.PageSetup.Orientation = xlLandscape
    ActiveSheet.PrintOut
End Sub

33. Imprimir a planilha na orientação retrato
Imprime a planilha ativa na orientação retrato.

Sub ImprimirRetrato()
    ActiveSheet.PageSetup.Orientation = xlPortrait
    ActiveSheet.PrintOut
End Sub

34. Ajustar a margem de impressão
Define margens personalizadas para impressão.

Sub AjustarMargens()
    With ActiveSheet.PageSetup
        .TopMargin = Application.InchesToPoints(1)
        .BottomMargin = Application.InchesToPoints(1)
        .LeftMargin = Application.InchesToPoints(0.75)
        .RightMargin = Application.InchesToPoints(0.75)
    End With
    ActiveSheet.PrintOut
End Sub

35. Configurar a impressão para imprimir todas as páginas
Configura a impressão para abranger todas as páginas da planilha.

Sub ImprimirTodasAsPaginas()
    ActiveSheet.PrintOut From:=1, To:=ActiveSheet.PageSetup.Pages.Count
End Sub

36. Imprimir a planilha com título repetido em cada página
Configura a impressão para repetir os títulos das colunas em cada página impressa.

Sub ImprimirComTituloRepetido()
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$1"
    End With
    ActiveSheet.PrintOut
End Sub

Códigos para Planilhas

37. Adicionar uma nova planilha
Este código adiciona uma nova planilha ao final do livro de trabalho.

Sub AdicionarNovaPlanilha()
    Sheets.Add After:=Sheets(Sheets.Count)
End Sub

38. Renomear uma planilha
Renomeia a planilha ativa para “Nova Planilha”.

Sub RenomearPlanilha()
    ActiveSheet.Name = "Nova Planilha"
End Sub

39. Mover uma planilha para o início do livro de trabalho
Move a planilha ativa para a primeira posição do livro de trabalho.

Sub MoverPlanilhaParaInicio()
    ActiveSheet.Move Before:=Sheets(1)
End Sub

40. Mover uma planilha para o final do livro de trabalho
Move a planilha ativa para a última posição do livro de trabalho.

Sub MoverPlanilhaParaFinal()
    ActiveSheet.Move After:=Sheets(Sheets.Count)
End Sub

41. Excluir uma planilha
Exclui a planilha ativa sem pedir confirmação.

Sub ExcluirPlanilha()
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Application.DisplayAlerts = True
End Sub

42. Copiar uma planilha para outro livro de trabalho
Copia a planilha ativa para um novo livro de trabalho.

Sub CopiarPlanilhaParaOutroLivro()
    ActiveSheet.Copy
End Sub

43. Proteger uma planilha com senha
Protege a planilha ativa com a senha “senha123”.

Sub ProtegerPlanilha()
    ActiveSheet.Protect Password:="senha123"
End Sub

44. Desproteger uma planilha com senha
Remove a proteção da planilha ativa usando a senha “senha123”.

Sub DesprotegerPlanilha()
    ActiveSheet.Unprotect Password:="senha123"
End Sub

45. Mostrar ou ocultar uma planilha
Mostra a planilha chamada “Planilha Oculta”.

Sub MostrarPlanilha()
    Sheets("Planilha Oculta").Visible = True
End Sub

46. Ocultar uma planilha
Oculta a planilha chamada “Planilha Oculta”.

Sub OcultarPlanilha()
    Sheets("Planilha Oculta").Visible = False
End Sub

47. Referenciar uma planilha específica por nome
Este código seleciona a planilha chamada “Planilha de Dados” diretamente.

Sub SelecionarPlanilhaPorNome()
    Sheets("Planilha de Dados").Select
End Sub

48. Verificar se uma planilha existe
Esse código verifica se a planilha “Planilha1” existe no livro de trabalho.

Sub VerificarPlanilhaExiste()
    On Error Resume Next
    If Not Sheets("Planilha1") Is Nothing Then
        MsgBox "Planilha existe!"
    Else
        MsgBox "Planilha não encontrada!"
    End If
    On Error GoTo 0
End Sub

Códigos para Pastas de Trabalho

49. Abrir uma pasta de trabalho existente
Este código abre uma pasta de trabalho existente a partir de um caminho específico.

Sub AbrirPastaDeTrabalho()
    Workbooks.Open "C:\Caminho\Para\Arquivo.xlsx"
End Sub

50. Salvar uma pasta de trabalho com um novo nome
Este código salva a pasta de trabalho ativa com um novo nome.

Sub SalvarComoNovoNome()
    ActiveWorkbook.SaveAs "C:\Caminho\NovoArquivo.xlsx"
End Sub

51. Salvar uma pasta de trabalho
Este código salva a pasta de trabalho ativa.

Sub SalvarPastaDeTrabalho()
    ActiveWorkbook.Save
End Sub

52. Fechar a pasta de trabalho sem salvar
Este código fecha a pasta de trabalho ativa sem salvar as alterações.

Sub FecharSemSalvar()
    ActiveWorkbook.Close SaveChanges:=False
End Sub

53. Fechar a pasta de trabalho e salvar
Este código fecha a pasta de trabalho ativa e salva as alterações feitas.

Sub FecharESalvar()
    ActiveWorkbook.Close SaveChanges:=True
End Sub

54. Fechar todas as pastas de trabalho abertas
Este código fecha todas as pastas de trabalho abertas no Excel.

Sub FecharTodasAsPastas()
    For Each wb In Application.Workbooks
        wb.Close SaveChanges:=False
    Next wb
End Sub

55. Verificar se uma pasta de trabalho está aberta
Esse código verifica se uma pasta de trabalho chamada “Arquivo.xlsx” está aberta.

Sub VerificarPastaDeTrabalhoAberta()
    On Error Resume Next
    Set wb = Workbooks("Arquivo.xlsx")
    If wb Is Nothing Then
        MsgBox "A pasta de trabalho não está aberta."
    Else
        MsgBox "A pasta de trabalho está aberta."
    End If
    On Error GoTo 0
End Sub

56. Ativar uma pasta de trabalho aberta
Este código ativa uma pasta de trabalho específica chamada “Arquivo.xlsx”.

Sub AtivarPastaDeTrabalho()
    Workbooks("Arquivo.xlsx").Activate
End Sub

57. Salvar e fechar a pasta de trabalho
Este código salva e fecha a pasta de trabalho ativa.

Sub SalvarEFechar()
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub

58. Criar uma nova pasta de trabalho
Este código cria uma nova pasta de trabalho em branco.

Sub CriarNovaPastaDeTrabalho()
    Workbooks.Add
End Sub

59. Definir uma pasta de trabalho como somente leitura
Este código define a pasta de trabalho ativa como somente leitura ao abrir.

Sub DefinirSomenteLeitura()
    ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub

60. Fechar a pasta de trabalho sem salvar se uma condição for atendida
Este código fecha a pasta de trabalho sem salvar se a célula A1 contiver o valor “Fechar”.

Sub FecharSeCondicaoAtendida()
    If Range("A1").Value = "Fechar" Then
        ActiveWorkbook.Close SaveChanges:=False
    End If
End Sub

Códigos para Tabelas Dinâmicas

61. Criar uma Tabela Dinâmica simples
Este código cria uma Tabela Dinâmica baseada nos dados de uma planilha ativa.

Sub CriarTabelaDinamica()
    Dim ws As Worksheet
    Dim ptCache As PivotCache
    Dim pt As PivotTable

    Set ws = ActiveSheet
    Set ptCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, ws.Range("A1:D20"))
    Set pt = ptCache.CreatePivotTable(ws.Range("F1"), "TabelaDinamica1")
End Sub

62. Adicionar um campo de linhas à Tabela Dinâmica
Adiciona um campo “Categoria” como linha na Tabela Dinâmica.

Sub AdicionarCampoLinha()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.PivotFields("Categoria").Orientation = xlRowField
End Sub

63. Adicionar um campo de valores à Tabela Dinâmica
Adiciona o campo “Vendas” como valores na Tabela Dinâmica.

Sub AdicionarCampoValores()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.AddDataField pt.PivotFields("Vendas"), "Total de Vendas", xlSum
End Sub

64. Alterar o estilo da Tabela Dinâmica
Aplica o estilo “PivotStyleMedium9” à Tabela Dinâmica.

Sub AlterarEstiloTabelaDinamica()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.TableStyle2 = "PivotStyleMedium9"
End Sub

65. Atualizar a Tabela Dinâmica
Atualiza a Tabela Dinâmica para refletir mudanças nos dados.

Sub AtualizarTabelaDinamica()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.RefreshTable
End Sub

66. Alterar a função de cálculo de um campo de valores
Muda o campo “Vendas” para calcular a média.

Sub AlterarFuncaoCalculo()
    Dim pt As PivotTable
    Dim pf As PivotField
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    Set pf = pt.PivotFields("Total de Vendas")
    pf.Function = xlAverage
End Sub

67. Adicionar um campo de colunas à Tabela Dinâmica
Adiciona o campo “Ano” como coluna na Tabela Dinâmica.

Sub AdicionarCampoColuna()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.PivotFields("Ano").Orientation = xlColumnField
End Sub

68. Remover um campo de uma Tabela Dinâmica
Remove o campo “Categoria” da Tabela Dinâmica.

Sub RemoverCampo()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.PivotFields("Categoria").Orientation = xlHidden
End Sub

69. Configurar a Tabela Dinâmica para exibir subtotais
Ativa subtotais para o campo “Categoria”.

Sub AtivarSubtotais()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.PivotFields("Categoria").Subtotals(1) = True
End Sub

70. Configurar a Tabela Dinâmica para não exibir subtotais
Desativa subtotais para o campo “Categoria”.

Sub DesativarSubtotais()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.PivotFields("Categoria").Subtotals(1) = False
End Sub

71. Alterar a ordem dos campos de linha
Muda a ordem dos campos de linha na Tabela Dinâmica.

Sub AlterarOrdemCampos()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.PivotFields("Categoria").Position = 2
End Sub

72. Excluir uma Tabela Dinâmica
Este código exclui a Tabela Dinâmica chamada “TabelaDinamica1”.

Sub ExcluirTabelaDinamica()
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
    pt.TableRange2.Clear
End Sub

Códigos para Gráficos

73. Criar um gráfico de colunas simples
Este código cria um gráfico de colunas baseado nos dados da planilha ativa.

Sub CriarGraficoColunas()
    Dim ws As Worksheet
    Dim grafico As Chart
    Set ws = ActiveSheet
    Set grafico = Charts.Add
    grafico.ChartType = xlColumnClustered
    grafico.SetSourceData Source:=ws.Range("A1:B10")
End Sub

74. Criar um gráfico de pizza
Cria um gráfico de pizza utilizando os dados da planilha ativa.

Sub CriarGraficoPizza()
    Dim ws As Worksheet
    Dim grafico As Chart
    Set ws = ActiveSheet
    Set grafico = Charts.Add
    grafico.ChartType = xlPie
    grafico.SetSourceData Source:=ws.Range("A1:B5")
End Sub

75. Alterar o título do gráfico
Modifica o título de um gráfico ativo.

Sub AlterarTituloGrafico()
    Dim grafico As Chart
    Set grafico = ActiveChart
    grafico.ChartTitle.Text = "Meu Gráfico Personalizado"
End Sub

76. Mudar o tipo de gráfico
Converte um gráfico existente para o tipo de barras empilhadas.

Sub AlterarTipoGrafico()
    Dim grafico As Chart
    Set grafico = ActiveChart
    grafico.ChartType = xlBarStacked
End Sub

77. Adicionar rótulos de dados ao gráfico
Insere rótulos de dados no gráfico ativo.

Sub AdicionarRotulosDados()
    Dim grafico As Chart
    Set grafico = ActiveChart
    grafico.ApplyDataLabels
End Sub

78. Excluir um gráfico
Remove um gráfico selecionado na planilha ativa.

Sub ExcluirGrafico()
    ActiveChart.Delete
End Sub

79. Redimensionar o gráfico
Ajusta o tamanho do gráfico ativo.

Sub RedimensionarGrafico()
    Dim grafico As ChartObject
    Set grafico = ActiveSheet.ChartObjects(1)
    grafico.Width = 400
    grafico.Height = 300
End Sub

80. Mover o gráfico para uma nova planilha
Transfere o gráfico ativo para uma nova planilha.

Sub MoverGraficoNovaPlanilha()
    Dim grafico As Chart
    Set grafico = ActiveChart
    grafico.Location Where:=xlLocationAsNewSheet
End Sub

81. Alterar o estilo do gráfico
Aplica um estilo predefinido ao gráfico ativo.

Sub AlterarEstiloGrafico()
    Dim grafico As Chart
    Set grafico = ActiveChart
    grafico.ChartStyle = 4
End Sub

82. Adicionar uma linha de tendência ao gráfico
Insere uma linha de tendência linear no gráfico ativo.

Sub AdicionarLinhaTendencia()
    Dim serie As Series
    Set serie = ActiveChart.SeriesCollection(1)
    serie.Trendlines.Add xlLinear
End Sub

83. Alterar a cor de uma série de dados
Modifica a cor da primeira série de dados no gráfico ativo.

Sub AlterarCorSerieDados()
    Dim serie As Series
    Set serie = ActiveChart.SeriesCollection(1)
    serie.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
End Sub

84. Exportar o gráfico como imagem
Salva o gráfico ativo como um arquivo de imagem.

Sub ExportarGraficoImagem()
    Dim grafico As Chart
    Set grafico = ActiveChart
    grafico.Export Filename:="C:\Caminho\Grafico.png", FilterName:="PNG"
End Sub

Códigos Avançados

85. Criar uma caixa de diálogo personalizada
Este código exibe uma caixa de entrada personalizada para o usuário inserir um valor e armazena o valor na célula A1.

Sub CaixaDialogoPersonalizada()
    Dim resposta As String
    resposta = InputBox("Insira o valor desejado:", "Caixa Personalizada")
    Range("A1").Value = resposta
End Sub

86. Proteger todas as planilhas da pasta de trabalho
Protege todas as planilhas da pasta de trabalho com uma senha.

Sub ProtegerTodasPlanilhas()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
        ws.Protect Password:="senha123"
    Next ws
End Sub

87. Desproteger todas as planilhas da pasta de trabalho
Remove a proteção de todas as planilhas protegidas com a senha “senha123”.

Sub DesprotegerTodasPlanilhas()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
        ws.Unprotect Password:="senha123"
    Next ws
End Sub

88. Enviar e-mail com anexos diretamente do Excel
Este código envia um e-mail com o arquivo ativo como anexo.

Sub EnviarEmail()
    Dim outlookApp As Object
    Dim emailItem As Object
    Set outlookApp = CreateObject("Outlook.Application")
    Set emailItem = outlookApp.CreateItem(0)
    emailItem.To = "[email protected]"
    emailItem.Subject = "Assunto do E-mail"
    emailItem.Body = "Corpo do E-mail"
    emailItem.Attachments.Add ThisWorkbook.FullName
    emailItem.Send
End Sub

89. Gerar números aleatórios em um intervalo de células
Este código preenche um intervalo com números aleatórios entre 1 e 100.

Sub GerarNumerosAleatorios()
    Dim rng As Range
    Set rng = Range("A1:A10")
    rng.Formula = "=RANDBETWEEN(1,100)"
    rng.Value = rng.Value
End Sub

90. Mesclar células com base em valores iguais
Mescla células na coluna A se os valores forem iguais.

Sub MesclarCelulasIguais()
    Dim i As Long
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
            Range(Cells(i - 1, 1), Cells(i, 1)).Merge
        End If
    Next i
End Sub

91. Criar um log de alterações na planilha
Registra as alterações feitas em uma planilha em outra planilha chamada “Log”.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wsLog As Worksheet
    Set wsLog = ThisWorkbook.Sheets("Log")
    wsLog.Cells(wsLog.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = "Alterado: " & Target.Address & " para " & Target.Value & " em " & Now
End Sub

92. Ocultar todas as planilhas exceto a ativa
Oculta todas as planilhas, deixando apenas a ativa visível.

Sub OcultarPlanilhasExcetoAtiva()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> ActiveSheet.Name Then
            ws.Visible = xlSheetHidden
        End If
    Next ws
End Sub

93. Converter fórmulas em valores
Transforma todas as fórmulas em valores no intervalo selecionado.

Sub ConverterFormulasValores()
    Dim rng As Range
    Set rng = Selection
    rng.Value = rng.Value
End Sub

94. Consolidar dados de várias planilhas
Consolida os dados de todas as planilhas em uma única planilha chamada “Consolidado”.

Sub ConsolidarDados()
    Dim ws As Worksheet
    Dim wsDestino As Worksheet
    Dim ultimaLinha As Long
    Set wsDestino = ThisWorkbook.Sheets("Consolidado")
    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> "Consolidado" Then
            ultimaLinha = wsDestino.Cells(Rows.Count, 1).End(xlUp).Row + 1
            ws.Rows("1:10").Copy wsDestino.Cells(ultimaLinha, 1)
        End If
    Next ws
End Sub

95. Criar uma lista de arquivos em uma pasta
Gera uma lista de nomes de arquivos de uma pasta especificada na coluna A.

Sub ListarArquivos()
    Dim pasta As String
    Dim arquivo As String
    Dim i As Long
    pasta = "C:\Caminho\Da\Pasta\"
    arquivo = Dir(pasta)
    i = 1
    Do While arquivo <> ""
        Cells(i, 1).Value = arquivo
        arquivo = Dir
        i = i + 1
    Loop
End Sub

96. Copiar dados para uma nova pasta de trabalho
Este código copia os dados da planilha ativa para uma nova pasta de trabalho.

Sub CopiarParaNovaPasta()
    Dim novaWB As Workbook
    Set novaWB = Workbooks.Add
    ThisWorkbook.Sheets(1).UsedRange.Copy novaWB.Sheets(1).Cells(1, 1)
End Sub

Códigos para Fórmulas

97. Inserir fórmula básica em uma célula
Este código insere uma fórmula de soma na célula A1.

Sub InserirFormulaSoma()
    Range("A1").Formula = "=SUM(B1:B10)"
End Sub

98. Inserir fórmula com referência a outra planilha
Adiciona uma fórmula que referencia uma célula em outra planilha.

Sub InserirFormulaReferencia()
    Range("A1").Formula = "='Planilha2'!B1"
End Sub

99. Converter fórmulas em valores em um intervalo
Substitui todas as fórmulas em um intervalo pelos valores calculados.

Sub ConverterFormulaParaValores()
    Range("A1:A10").Value = Range("A1:A10").Value
End Sub

100. Adicionar fórmula de concatenação em uma célula
Este código concatena os valores das células A1 e B1 na célula C1.

Sub InserirFormulaConcatenar()
    Range("C1").Formula = "=A1 & "" "" & B1"
End Sub

101. Inserir fórmula SE em uma célula
Adiciona uma fórmula SE (IF) na célula A1 para verificar se o valor em B1 é maior que 10.

Sub InserirFormulaSE()
    Range("A1").Formula = "=IF(B1>10; ""Maior""; ""Menor ou Igual"")"
End Sub

102. Inserir fórmula de média em um intervalo
Calcula a média de valores no intervalo B1:B10 e exibe o resultado na célula A1.

Sub InserirFormulaMedia()
    Range("A1").Formula = "=AVERAGE(B1:B10)"
End Sub

103. Inserir fórmula PROCV em uma célula
Insere uma fórmula PROCV para buscar valores na tabela de A1:B10 com base no valor em C1.

Sub InserirFormulaPROCV()
    Range("D1").Formula = "=VLOOKUP(C1; A1:B10; 2; FALSE)"
End Sub

104. Inserir fórmula SOMARPRODUTO
Adiciona uma fórmula SOMARPRODUTO que multiplica e soma valores em dois intervalos.

Sub InserirFormulaSOMARPRODUTO()
    Range("A1").Formula = "=SUMPRODUCT(B1:B10; C1:C10)"
End Sub

105. Inserir fórmula de contagem de valores únicos
Conta valores únicos no intervalo A1:A10 usando uma fórmula matricial.

Sub InserirFormulaValoresUnicos()
    Range("A1").FormulaArray = "=SUM(1/COUNTIF(B1:B10; B1:B10))"
End Sub

106. Inserir fórmula de índice e corresp
Adiciona uma fórmula ÍNDICE e CORRESP para buscar um valor em uma tabela.

Sub InserirFormulaIndiceCorresp()
    Range("A1").Formula = "=INDEX(B1:B10; MATCH(C1; A1:A10; 0))"
End Sub

107. Inserir fórmula de arredondamento
Insere uma fórmula para arredondar o valor de B1 para 2 casas decimais.

Sub InserirFormulaArredondar()
    Range("A1").Formula = "=ROUND(B1; 2)"
End Sub

108. Inserir fórmula de soma condicional
Adiciona uma fórmula SOMASE para somar valores no intervalo B1:B10 baseados em uma condição.

Sub InserirFormulaSOMASE()
    Range("A1").Formula = "=SUMIF(A1:A10; ""Texto""; B1:B10)"
End Sub

109. Inserir fórmula de contagem condicional
Conta células no intervalo A1:A10 que atendem a uma condição.

Sub InserirFormulaContarSe()
    Range("A1").Formula = "=COUNTIF(A1:A10; ""Texto"")"
End Sub

110. Aplicar fórmula de hoje
Insere a data atual na célula A1 usando a fórmula HOJE.

Sub InserirFormulaHoje()
    Range("A1").Formula = "=TODAY()"
End Sub

111. Inserir fórmula de agora
Adiciona a data e hora atual à célula A1.

Sub InserirFormulaAgora()
    Range("A1").Formula = "=NOW()"
End Sub

112. Inserir fórmula de texto para maiúsculas
Converte texto em uma célula para maiúsculas usando a função MAIÚSCULA.

Sub InserirFormulaMaiuscula()
    Range("A1").Formula = "=UPPER(B1)"
End Sub

113. Inserir fórmula de texto para minúsculas
Converte texto em uma célula para minúsculas usando a função MINÚSCULA.

Sub InserirFormulaMinuscula()
    Range("A1").Formula = "=LOWER(B1)"
End Sub

114. Inserir fórmula para inicial maiúscula
Converte texto para que cada palavra comece com letra maiúscula usando a função PRI.MAIÚSCULA.

Sub InserirFormulaInicialMaiuscula()
    Range("A1").Formula = "=PROPER(B1)"
End Sub

115. Inserir fórmula de número de caracteres
Conta o número de caracteres em uma célula usando a função NÚM.CARACT.

Sub InserirFormulaNumCaracteres()
    Range("A1").Formula = "=LEN(B1)"
End Sub

116. Inserir fórmula para substituir texto
Substitui parte de um texto na célula B1 por outro texto usando a função SUBSTITUIR.

Sub InserirFormulaSubstituir()
    Range("A1").Formula = "=SUBSTITUTE(B1; ""TextoAntigo""; ""TextoNovo"")"
End Sub

4. Baixe o PDF com todos os Códigos

Baixe Aqui!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solicitar exportação de dados

Utilize este formulário para solicitar uma cópia dos seus dados neste site.

Solicitar remoção de dados

Utilize este formulário para solicitar a remoção dos seus dados neste site.

Solicitar retificação de dados

Utilize este formulário para solicitar a retificação dos seus dados neste site. Aqui você pode corrigir ou atualizar seus dados por exemplo.

Solicitar cancelamento de inscrição

Utilize este formulário para solicitar o cancelamento de inscrição do seu e-mail em nossas Listas de E-mail.