Neste artigo você conhecerá 15 macros que você deveria conhecer no Excel.
Macro Excel para Habilitar a guia Desenvolvedor
Inicialmente habilite a guia desenvolvedor conforme abaixo.
- No Excel 2007 clique no botão com o símbolo do Microsoft Office;
- Clique no botão Opções na janela que segue clique no botão Geral na esquerda;
- Marque a opção Habilitar Guia Desenvolvedor;
- Desta forma surgirá a nova aba chamada “Desenvolvedor”;
- Clique nesta guia e no botão Gravar Macro;
- Selecione no botão Armazenar macro em: “Pasta de trabalho pessoal de macros”, conforme a figura;
- Digite na tecla de atalho uma letra no caso eu escolhi “A” maiúscula.
- Clique em OK;
- Clique em Parar Gravação;
- Este último procedimento serviu para criar um projeto pessoal que poderá ser acessado a qualquer momento no Excel.
Para inserir os códigos das macros pressione ALT+F11ou na guia Desenvolvedor no botão Visual Basic e clique em Inserir->Módulo e adicione os códigos conforme necessário.
E para chamar os códigos pode clicar em Inserir->Imagem e clicar com o botão direito e selecionar Atribuir Macro e selecionar a macro que deseja.
Navegar Entre Planilhas VBA
O código abaixo é para navegar entre planilhas, para a próxima e a anterior.
Public Sub lsProximo()
If ActiveSheet.Index < ActiveWorkbook.Sheets.Count Then
Sheets(ActiveSheet.Index + 1).Select
End If
End Sub
Public Sub lsAnterior()
If ActiveSheet.Index > 1 Then
Sheets(ActiveSheet.Index - 1).Select
End If
End Sub
Ajustar Colunas Automaticamente VBA
Esta macro atualiza a planilha ajustando o tamanho das colunas de forma automática.
Sub lsAutoAjuste()
Columns("C:AA").EntireColumn.AutoFit
Range("C8").Select
End Sub
Macros Excel para Habilitar Cálculo Automático, manual e Calcular
No código abaixo você tem uma macro de como habilitar o código automático, manual ou ainda calcular planilhas no Excel.
Sub lsCalcular()
ActiveSheet.Calculate
End Sub
Sub lsCalcularManual()
Application.Calculation = xlManual
End Sub
Sub lsCalcularAutomatico()
Application.Calculation = xlAutomatic
End Sub
Proteger Todas as Planilhas no Excel com VBA
Este código protege todas as planilhas no Excel de forma automática inserindo inclusive a senha.
Basta colar os códigos abaixo e depois ao clicar no botão e chamar o VBA ele será executado e irá solicitar a senha para proteger as planilhas.
'Função que protege todas as planilhas de um arquivo
Sub lsProtegerTodasAsPlanilhas()
'Declara as variáveis necessárias
Dim lPass As String
Dim lQtdePlan As Integer
Dim lPlanAtual As Integer
'Solicita a senha
'O método InputBox é utilizado para solicitar um valor através de um formulário
lPass = InputBox("Proteger todas as planilhas:", "Senha")
'Inicia as variáveis
'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
lQtdePlan = Worksheets.Count
lPlanAtual = 1
'Loop pelas planilhas
'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
While lPlanAtual <= lQtdePlan
'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
Worksheets(lPlanAtual).Activate
'O método .Protect proteje a planilha passando os parâmetros da planilha atual
ActiveSheet.Protect Password:=lPass, _
DrawingObjects:=CBool(ActiveSheet.ProtectDrawingObjects), _
Contents:=CBool(ActiveSheet.ProtectContents), _
AllowFormattingCells:=ActiveSheet.Protection.AllowFormattingCells, _
AllowFormattingColumns:=ActiveSheet.Protection.AllowFormattingColumns, _
AllowFormattingRows:=ActiveSheet.Protection.AllowFormattingRows, _
AllowInsertingColumns:=ActiveSheet.Protection.AllowInsertingColumns, _
AllowInsertingRows:=ActiveSheet.Protection.AllowInsertingRows, _
AllowInsertingHyperlinks:=ActiveSheet.Protection.AllowInsertingHyperlinks, _
AllowDeletingColumns:=ActiveSheet.Protection.AllowDeletingColumns, _
AllowDeletingRows:=ActiveSheet.Protection.AllowDeletingRows, _
AllowSorting:=ActiveSheet.Protection.AllowSorting, _
AllowFiltering:=ActiveSheet.Protection.AllowFiltering, _
AllowUsingPivotTables:=ActiveSheet.Protection.AllowUsingPivotTables
'Muda o índice para passar para a próxima planilha
lPlanAtual = lPlanAtual + 1
Wend
'O método MsgBox exibe um formulário de aviso ao usuário.
MsgBox "Planilhas protegidas!"
End Sub
Desproteger Todas as Planilhas no Excel com VBA
Este código desprotege todas as planilhas no Excel de forma automática inserindo inclusive a senha.
'Função que desprotege todas as planilhas de um arquivo
Sub lsDesprotegerTodasAsPlanilhas()
'Declara as variáveis necessárias
Dim lPass As String
Dim lQtdePlan As Integer
Dim lPlanAtual As Integer
'Solicita a senha
'O método InputBox é utilizado para solicitar um valor através de um formulário
lPass = InputBox("Desproteger todas as planilhas:", "Senha")
'Inicia as variáveis
'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
lQtdePlan = Worksheets.Count
lPlanAtual = 1
'Loop pelas planilhas
'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
While lPlanAtual <= lQtdePlan
'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
Worksheets(lPlanAtual).Activate
'O método .UnProtect desprotege a planilha
ActiveSheet.Unprotect Password:=lPass
'Muda o índice para passar para a próxima planilha
lPlanAtual = lPlanAtual + 1
Wend
'O método MsgBox exibe um formulário de aviso ao usuário.
MsgBox "Planilhas desprotegidas!"
End Sub
Imprimir Planilhas com VBA no Excel
O código VBA abaixo imprime planilhas automaticamente ao ser executado.
Public Sub lsImprimir()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, IgnorePrintAreas:=False
End Sub
Gerar PDF no Excel com VBA
Aqui você tem como gerar PDF no Excel com VBA de forma automática.
Public Sub lsPDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ActiveSheet.Range("lstrPasta").Value & "\" & ActiveSheet.Range("lstrArquivo").Value & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
Gerar Backup de Um Arquivo Excel no Excel Copiando e Salvando com Outro Nome
No exemplo abaixo nós temos uma cópia automática da pasta de trabalho com a data do dia do backup.
Public Sub lsBackup()
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy-mm-dd") & " " & ThisWorkbook.Name
End Sub
Atualizar Dados no Excel com VBA
Neste código de VBA você terá como atualizar os dados automaticamente à partir da execução da macro.
Ela irá atualizar as tabelas dinâmicas e conexões automaticamente.
Public Sub lsAtualizar()
ActiveWorkbook.RefreshAll
End Sub
Formulário Automático no Excel com VBA
O Excel possui um gerador de formulário automático no Excel, basta colocar uma tabela à partir da célula A1 com cabeçalhos.
Public Sub lsFormularioAutomatico()
ActiveSheet.ShowDataForm
End Sub
Atingir Meta Automático
No exemplo abaixo você tem uma solução criada para realizar o cálculo automático de atingir meta à partir do valor de um concorrente para identificar a margem para alcançar o valor.
Sub lsAtingirMeta()
Range("C28").GoalSeek Goal:=ActiveSheet.Range("ValorConcorrente").Value, ChangingCell:=Range("C17")
End Sub
Tela Cheia no Excel com VBA
O código abaixo faz com que o Excel abra com tela cheia. O código VBA:
- Oculta a guia de menu
- Oculta a barra de fórmula
- Oculta a barra de status
- Altera o nome do Excel
- Oculta a barra horizontal
- Oculta a barra vertical
- Oculta as planilhas
- Oculta os títulos de linhas e colunas
- Oculta os zeros da planilha
- Oculta as linhas de grade
Sub lsLigarTelaCheia()
'Oculta todas as guias de menu
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
'Ocultar barra de fórmulas
Application.DisplayFormulaBar = False
'Ocultar barra de status, disposta ao final da planilha
Application.DisplayStatusBar = False
'Alterar o nome do Excel
Application.Caption = "Controle de manutenção de veículos 3.0"
With ActiveWindow
'Ocultar barra horizontal
.DisplayHorizontalScrollBar = False
'Ocultar barra vertical
.DisplayVerticalScrollBar = False
'Ocultar guias das planilhas
.DisplayWorkbookTabs = False
'Oculta os títulos de linha e coluna
.DisplayHeadings = False
'Oculta valores zero na planilha
.DisplayZeros = False
'Oculta as linhas de grade da planilha
.DisplayGridlines = False
End With
End Sub
Tirar a Tela Cheia no Excel com VBA
O código abaixo faz com que o Excel abra com tela cheia. O código VBA:
- Exibe a guia de menu
- Exibe a barra de fórmula
- Exibe a barra de status
- Altera o nome do Excel
- Exibe a barra horizontal
- Exibe a barra vertical
- Exibe as planilhas
- Exibe os títulos de linhas e colunas
- Exibe os zeros da planilha
- Exibe as linhas de grade
Sub lsDesligarTelaCheia()
'Reexibe os menus
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
'Reexibir a barra de fórmulas
Application.DisplayFormulaBar = True
'Reexibir a barra de status, disposta ao final da planilha
Application.DisplayStatusBar = True
'Reexibir o cabeçalho da Pasta de trabalho
ActiveWindow.DisplayHeadings = True
'Retornar o nome do Excel
Application.Caption = ""
With ActiveWindow
'Reexibir barra horizontal
.DisplayHorizontalScrollBar = True
'Reexibir barra vertical
.DisplayVerticalScrollBar = True
'Reexibir guias das planilhas
.DisplayWorkbookTabs = True
'Reexibir os títulos de linha e coluna
.DisplayHeadings = True
'Reexibir valores zero na planilha
.DisplayZeros = True
'Reexibir as linhas de grade da planilha
.DisplayGridlines = True
End With
End Sub
Selecionar a Pasta com VBA no Excel
No código abaixo temos a seleção de pastas no Excel utilizando o VBA.
'Procedimento para selecionar arquivos
Sub lsSelecionarPasta()
Dim fDlg As FileDialog
Dim lArquivo As String
'Chama o objeto passando os parâmetros
Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogFolderPicker)
With fDlg
'Alterar esta propriedade para True permitirá a seleção de vários arquivos
.AllowMultiSelect = False
'Determina a forma de visualização dos arquivos
.InitialView = msoFileDialogViewDetails
'Determina qual o drive inicial
.InitialFileName = ActiveSheet.Range("LocalPasta").Value
End With
'Retorna a pasta selecionada
If fDlg.Show = -1 Then
lArquivo = fDlg.SelectedItems(1)
ActiveSheet.Range("LocalPasta").Value = lArquivo
Else
MsgBox "Não foi selecionada a pasta"
End If
End Sub
Ajustar Planilha Conforme a Resolução da Tela
Podemos também realizar um ajuste da tela para que seja automaticamente configurado conforme a resolução.
Para isso defina em cada planilha a área que deseja enxergar e clique em definir nome e defina o nome como zoom.
Faça com escopo somente para a planilha.
Adicione para todas as planilhas.
E após isso coloque o código no módulo criado.
Após isso pode ligar com a imagem na tela clicando com o botão direito sobre a imagem e selecione atribuir macro e selecione lsControlaZoom.
Public Sub lsResolucao()
ActiveSheet.Range("area_zoom").Select
ActiveWindow.Zoom = True
ActiveSheet.Range("B4").Select
End Sub
Ocultar e Reexibir Segmentação de Dados no Excel
O código abaixo oculta e reexibe as segmentações de dados no Excel à partir de um clique nos botões para a chamada dos códigos VBA.
Veja no link seguinte como ocultar e reexibir a segmentação de dados no Excel: https://www.guiadoexcel.com.br/ocultar-e-reexibir-segmentacao-de-dados-vba-excel/
No nosso exemplo usamos o seguinte código VBA.
Global lflMinhasPlacas As Boolean
Public Sub lsFiltrarPlaca()
If lflMinhasPlacas = True Then
ActiveSheet.Shapes.Range(Array("Placa 1")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("Motorista")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("Fornecedor")).Visible = msoFalse
lflMinhasPlacas = False
Else
ActiveSheet.Shapes.Range(Array("Placa 1")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("Motorista")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("Fornecedor")).Visible = msoTrue
lflMinhasPlacas = True
End If
End Sub
Veja no vídeo ao topo deste artigo como criar do zero.
Download Planilha Exemplo com 15 Macros Excel que Deveria Conhecer
Clique no botão abaixo para realizar o download da planilha com exemplo de dados: