
Para aproveitar toda a potência que o Excel possui, é indispensável a utilização de macros. Macro poder ser definida como uma serie de comandos(em sequencia), que podem ser cliques, toques no teclado ou até mesmo pequenas linhas de códigos com funções mais avançadas. Essas sequencias são gravadas em um modulo VBA e são executados sempre que for necessário.
O principal beneficio de uma macro é o ganho de tempo que ela proporciona, afinal ela automatiza algo que teria que ser feito de forma manual em diversas etapas. Muito utilizadas quando é preciso executar varias vezes o mesmo conjunto de tarefas.
Uma macro pode ser criada de duas formas distintas:
- Usando o gravador de Macros: Nesse procedimento o Excel armazena cada ação que fará parte da Macro, depois o gravador de macro converte essas ações em comandos VBA(Visual Basic for Applications).
- Usando VBA: Se você entende um pouco de programação ou mesmo domina a linguagem VBA, pode criar suas macros por conta própria. Para isso basta utilizar o editor de VBA presente nas versões mais recentes do Microsoft Excel.
Como dito anteriormente é possível realizar uma infinidade de operações com as macros, no entanto existem algumas que se destacam das demais por serem mais utilizadas no dia-a-dia. Veja 10 macros que vão ajudar você com as suas planilhas.
1) Mostrando uma mensagem
Basta inserir na sua macro o comando MsgBox. Veja como no exemplo abaixo:
MsgBox “texto da mensagem”
Essa linha de código pode ser inserida em qualquer macro, muito útil nos casos onde se faz necessário emitir avisos ao usuário da planilha que está rodando a macro.
2) Execute uma macro quando abrir a planilha
Existem casos onde a macro precisa ser aberta juntamente com a planilha. Nesse caso basta montar uma macro com o parâmetro Auto_Open(). Confira no exemplo
Sub Auto_Open()
MsgBox “Para saber tudo sobre Excel, acesse www.https://luz.vc/”
End Sub
No exemplo acima, assim que a planilha for aberta uma mensagem será exibida. Não se esqueça de habilitar as macros no seu Excel.
3) Planilha com data e hora atual
É possível escrever a data e a hora atual na planilha. O exemplo a seguir insere esses dados na célula A1, veja.
Sub escreverDataEHora()
Range(“A1”) = Now
End Sub
4) Execute a mesma ação em cada célula selecionada
Em algum momento você precisara executar uma ação nas células que foram selecionadas pelo usuário. Para isso crie uma macro igual o exemplo abaixo.
Sub fazerAlgoACadaCelula()
For Each cell In Selection.Cells
MsgBox cell
Next
End Sub
5) A mesma coisa em todas as células selecionadas
Você pode fazer a mesma macro anterior mas de forma um pouco mais abrangente, ou seja a ação não será realizada em etapas. O exemplo abaixo escreve “Olá” em todas as células.
Sub fazerAlgoATodasAsCelulas()
Selection.Cells.Value = “Olá”
End Sub
Você pode fazer uma infinidade de inserções no código, como por exemplo mudar a cor do texto, tamanho da fonte, tipo de fonte e muito mais.
6) Identificando formulas dentro de cada celula
É altamente recomendável verificar se existe algo dentro da célula, sempre que uma modificação na célula seja necessário. Nesse exemplo verificaremos se existe alguma formula na célula em questão.
Sub verificarFormula()
If Range(“A1”).HasFormula = True Then
MsgBox “Existe Formula”
Else
MsgBox “Não é uma Formula”
End If
End Sub
7) Mudar cor da célula ao passar o mouse
Você também pode querer proporcionar mais interatividade com os usuários da planilha. O ideal é que a interatividade tenha o objetivo de facilitar o serviço e visualização das informações. A macro abaixo é um exemplo de como você pode fazer com que sua tabela apresente células com o mesmo tom de cor sempre que o mouse passar por um dado que correlacione essas células.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim LinhaInicio As Range
Dim Linha As Range
Dim Linha2 As Long
Cells.Interior.ColorIndex = xlNone
Linha2 = Target.Row
Set LinhaInicio = Range(“A” & Linha2, Target)
‘Pinta da celula selecionada até a coluna 5
Set Linha = Range(Cells(Target.Row, 1), Cells(Target.Row, 5))
With Linha
.Interior.ColorIndex = 12
End With
End Sub
8) Mudando a cor do interior e das fontes
Esta macro , altera as cores no interior e na fonte das células, de acordo com a letra das células.
Sub Colorir_fonte_interior_letra()
For N = 1 To Range(“O65536”).End(xlUp).Row
Select Case Range(“O” & N)
Case “A”
Range(“O” & N).Interior.ColorIndex = 3
Range(“O” & N).Font.ColorIndex = 1
Case “B”
Range(“O” & N).Interior.ColorIndex = 4
Range(“O” & N).Font.ColorIndex = 2
Case “C”
Range(“O” & N).Interior.ColorIndex = 5
Range(“O” & N).Font.ColorIndex = 3
Case “D”
Range(“O” & N).Interior.ColorIndex = 7
Range(“O” & N).Font.ColorIndex = 12
Case Else
Range(“O” & N).Interior.ColorIndex = 6
Range(“O” & N).Font.ColorIndex = 4
End Select
Next N
End Sub
9) Macro que fala
Já pensou que interessante ter uma planilha que fala os dados contidos nela, é exatamente isso que essa macro faz. No exemplo abaixo a planilha possuía palavras que iam da célula A1 até a A5, mas você pode escolher o intervalo que achar mais conveniente, para isso basta alterar o A1:A5 presentes no código abaixo, pelo intervalo que preferir.
Sub ExcelFalando()
Range(“A1:A5”).Speak
End Sub
10) Protegendo planilhas com login e senha
Se você leu até aqui, nada mais justo do que ser surpreendido com mais um item nessa lista. E, trata-se de uma macro que você pode ter acesso agora mesmo. Muitas pessoas têm problemas na hora de restringir dados em uma planilha na hora de compartilha-la com parceiros, colaboradores, etc.
Por isso, criamos uma macro pronta para restringir abas através de login e senha em planilhas. Você poderá criar usuários e definir o que eles podem acessar em determinadas planilhas. Veja exemplos abaixo:
Para ter acesso a Planilha para Criar Login e Senha em Outras Planilhas, clique aqui!
Esses são apenas alguns exemplos de macros que você pode utilizar no dia a dia. Vale lembrar que toda macro é um mini programa e por isso é fundamental ter cuidado para não executar qualquer tipo de macro, principalmente se ela vier em planilhas de terceiros.
E você já usa alguma macro no seu cotidiano? Compartilhe conosco a sua experiência deixando um comentário ou entrando em contato!
Está com dúvidas? Entre no Fórum de Excel da LUZ e envie a sua pergunta!
Hola Armando, es posible hacer via macro sí. Pero si lo desea, puede utilizar la función HIPERLINK con INDIRECTO y CONCATENAR para adjuntar textos que formen el enlace correcto y se abran automáticamente
Hola buenas tardes, estoy haciendo una bitácora de ni correspondencia y necesito agregar el hipervínculo a una celda de excel para que se abra el pdf cuando de click sobre el hipervínculo, hacerlo en una o diez celdas es sencillo de una por una, pero hacerlo en cientos o miles es tedioso. Mis archivos pdfs escaneados se llaman igual (oficio2015_001) y están en la misma carpeta, solo cambia el número. Puede hacerse una macro para generar los hipervínculos de manera masiva?
Oi Leandro, o VBA tem uma gama de possibilidades bem grande. Não sei qual é o seu conhecimento, mas se for inicial, recomendo nosso curso – https://cursos.luz.vc/curso/curso-de-vba-para-excel/
Estou aposentado desde 2016, mas em meu último emprego um colega de trabalho criou uma planilha Excel que importava alguns dados de determinados produtos comercializados pela empresa, diretamente do programa gestor de notas fiscais que utilizávamos. Eu fazia o mesmo através do aplicativo Firebird 2.5 que nos havia sido fornecido por um analista de sistemas, mas não sabia que isso era possível também através do Excel utilizando macros e VBA. O Rafael Ávila pode me dar alguma informação sobre o assunto ?
Fala Pedro, tudo bom? Nós nunca nos preocupamos com isso porque as planilhas demonstrativas, além das senhas (que podem ser quebradas eventualmente com uso de VBA por pessoas de má fé), ainda temos outros mecanismos de proteção que fazem com que as demos sejam pouco úteis mesmo depois de terem a proteção perdida. Apesar disso, agradeço o toque e ajustei o post aqui =]
Rapaz que tiro no pé expor o VBA que quebra senhas de planilhas. As planilhas de demonstrações deste site são todas protegidas com senhas…
Testei essa macro aqui e resolveu, qualquer duvida pode entrar em contato.
Sub Cor()
‘Checar quantas células em um intervalo estão na cor da célula A1
‘
Dim Cor As Variant ‘Cria a variável que reconhecerá a cor da célula de referência
Dim i, j As Long ‘Cria as varáveis de linha e coluna
Dim teste As Integer
Dim Contador As Integer
Dim L_in, L_fin, Col_in, Col_fin As Integer ‘Cria as variáveis que representaram o range de análise
‘Seleciona a célula de referência
Range(“A1”).Select
‘Reconhece o atributo cor da célula de referência
Cor = Range(“A1”).Interior.Color
L_in = Range(“F2”).Value
L_fin = Range(“G2”).Value
Col_in = Range(“F3”).Value
Col_fin = Range(“G3”).Value
i = L_in
Contador = 0
Do While i <= L_fin
j = Col_in
Do While j <= Col_fin
If Cells(i, j).Interior.Color = Cor Then
teste = 1
Else: teste = 0
End If
Contador = Contador + teste
j = j + 1
Loop
i = i + 1
Loop
Range("A1").Value = Contador
End Sub
Essa macro resolve seu problema.
Sub Macro_EDSON()
‘
‘ Macro_EDSON Macro
‘ macro que copie a coluna K de de uma planilha “NEW DIGITA”e cole em outra planilha “RELATORIO” na coluna A1 e no dia seguinte copiar a mesma coluna k e colar na proxima coluna B1
‘
Dim v As Worksheet
Dim w As Worksheet
Dim contador As Integer
Set v = Worksheets(“NEW_DIGITA”)
Set w = Worksheets(“RELATORIO”)
Sheets(“NEW_DIGITA”).Select
Sheets(“NEW_DIGITA”).Columns(“K:K”).Copy
Sheets(“RELATORIO”).Select
Range(“A1”).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(“A1”).Select
Sheets(“NEW_DIGITA”).Select
Application.CutCopyMode = False
v.Range(“K1”).Select
End Sub
Oi Denize, o Excel não tem nenhuma lógica de contagem por cor facilmente acessada. O que você pode fazer é criar uma coluna para dizer qual cor é, usar uma formatação condicional para mudar a cor e depois fazer a contagem de acordo com o valor da célula (que erá uma palavra remetendo a uma cor)
Boa Tarde!!!
Utilizo o excel2010 e preciso de uma formula que conta se de uma coluna por cores
ja tentei alguns macros mas não consigo chegar no resultado de contar quantas celulas da coluna esta em uma determinada cor
Se puder me ajudar?!!!
Não entendi a diferença
Digo Coluna A inteira…
Prezados, boa tarde.
Precisa de uma macro que inserisse na coluna A1 o seguinte formato aos números:
=(“1231231223”)
hoje os números estão assim 1231231223, porem preciso que eles fiquem todos na formatação acima.
Por favor quem puder me ajudar.
atenciosamente,
Giovanni Batista
Oi Gislaine, basta criar uma lista em uma célula, com validação de dados e depois usar o PROCV para buscar os valores do produto escolhido
Boa tarde ! Trabalho com uma planilha muito grande de produtos e fornecedores , uso ela para preencher outra planilha de orçamento. gostaria de uma forma por exemplo clicar na celular da planilha de orçamento e por ela selecionar o produto e valores de outra planilha ( com os dados dos produtos)
Oi Edson, basta você gravar a macro fazendo esse processo. A atualização precisará que você clique em um botão todo dia para executar a macro, mas o processo é bem simples
Rafael Ávila
preciso de uma macro que copie a coluna K de de uma planilha “NEW DIGITA”e cole em outra planilha “RELATORIO” na coluna A1 e no dia seguinte copiar a mesma coluna k e colar na proxima coluna B1
Acredito que seja possível chegar nesse resultado usando código VBA Abraão. Eu encontrei algumas referências que podem ajudar
– https://social.msdn.microsoft.com/Forums/pt-BR/b9d37e83-25b5-4ec6-9ae5-7ad4641e5537/cdigo-no-vba-para-extrair-dados-de-uma-pgina-na-web?forum=vbapt
– http://www.maximoaccess.com/t3768-resolvidoconsulta-web-vba-excel-pegando-link-da-consulta-de-uma-celula
– http://www.clubedohardware.com.br/forums/topic/1212798-macro-vba-excel-de-consulta-%C3%A0-web-p%C3%A1ginas-sequenciais/
Gostei muito do site e da forma como as coisas são explicadas. Parabéns!
Estou precisando de uma ajudinha. Preciso executar uma consulta a um link externo do excel. Porém, a URL não é sempre a mesma. Como poderia criar uma consulta a partir de uma caixa de diálogo, onde poderia colar o endereço desejado?
Obrigado!
Oi Ana, sugiro que você coloque essa mensagem no nosso fórum – https://forum.luz.vc/
Já de inicio tenho uma planilha de cartões de crédito e débito extensas, que vem descrição, data,bruto,despesa,liquido e taxa. No caso o que fazemos lá utilizamos a Data, Bruto e Despesa fica mais ou menos assim : 01/01/2017 1.345,67 67,89; ai modificamos para ficar a sim
01/01/2017 6874 (numero do cartão) 51 (este nunca muda) 1.345,67 3700 (código de provisão do cartão)
01/01/2017 5029 (nunca muda) 6874 (repete ref. ao cartão) 67,89 1562 (nunca muda)
Dps de fazer isso e jogado no TXT que deve ficar assim:
,01/01/017,6874,51,1345.67,3700
,01/01/2017,5029,6874,67.89,1562
Então se tiver como já puxar daqui de acordo com o nome do cartão descrição, data,bruto,despesa,liquido e taxa
Boa Noite, preciso de um código para VBA especifico, trabalho numa contabilidade e preciso para agilizar o serviço lá poderia entrar em contato por e-mail: [email protected] ou Zap: 27 99287-4242.
Que passo o que preciso!
Oi Robson, o próprio hiperlink pode funcionar levando o cursos do mouse para o início da tela, basta selecionar a opção de levar para o mesmo documento e selecionar uma célula inicial, por exemplo, A1
Boa tarde !!!
Gostaria de um macro, ou algo para quando direcionar por hiperlink uma celula, ela aparecer no topo de tela.
Oi Eduardo, esse processo que você quer criar é bem complicado e exige uma série de ações diferentes para funcionar. Ficaria bem difícil te explicar tudo por aqui. Na LUZ temos uma planilha que faz o controle de acessos e logins. Dá uma olhada nela – https://luz.vc/macros-prontas-em-excel/planilha-para-criar-login-e-senha-em-outras-planilhas
Ainda assim, só ela não seria suficiente, ainda seria necessário criar algumas rotinas como a de entender que o form só precisa ser preenchido uma vez, o próprio form e outros detalhes
Oi Rogério, no VBA você pode utilizar eventos para realizar ações. Nesse caso, você pode usar o evento change (se não me engano) condicionado ao que você quer fazer.
Olá gostei muito do blog e as matérias contidas.
Gostaria de uma Ajuda com uma Planilha Financeira Empresarial, eu procuro criar no vba, uma tela de “boas Vindas” com Login e Formulário. Deixando o Excel invisível para somente abrir apos acesso depois de preencher o formulário onde o mesmo formulário Colocaria os Dados fornecidos como CNPJ, Nome da Empresa, CPF e outros dados necessários. Porem esse userforme apareceria para preenchimento somente uma vez na primeira abertura , pois depois de preenchido as informações empresariais ele as manteria e me permitira escolher em qual Plan quero visualizar ou acessar .. Como disse uma planilha empresarial financeira com varias plan ( de Janeiro a Dezembro).
Eu tenho o esboço do que quero na cabeça mais nao sei como montar rsrs’ pode me ajudar ?
gostei muito das dicas do site.
pf., preciso saber se é possível varrer uma determinada coluna que tem códigos que se repetem e tomar uma ação a cada vez que o código muda. Exemplo:
1
1
_ Acao referente ao codigo 1
2
2
2
_ Acao referente ao codigo 2
5
5
_ Acao referente ao codigo 5
o programa teria que identificar a mudança do padrão
é possível?
Olá Rafael tudo bem? uma vez eu vi uma macro que era o seguinte: tudo queeu fazia dentro do excel, essa macro ficava repetindo o que eu tinha feito tipo como se eu tivesse gravando a tela, como fazer macro vc sabe?
Desde Já Agradeço!
Oi Hernandes, infelizmente não temos um passo a passo mais detalhado do que esse aqui em cima.
Tentei fazer o item, 7 e não consegui, teria algum lugar com um passo a passo?
Comments are closed.