Códigos VBA – 10 macros para aumentar a produtividade programando em VBA

Códigos VBA – 10 Macros para Aumentar a Produtividade Programando em VBA.

Trabalho na plataforma Excel já a um certo tempo e desde que resolvi ingressar na área profissionalmente, tenho aprendido bastante. Nesse artigo quero mostrar exatamente isso, principalmente para você que deseja mergulhar nesse mundo da programação. Iremos abordar o seguinte tema: 10 Macros para Aumentar a Produtividade Programando em VBA. Se você deseja saber mais sobre esse assunto, peso para que leia este artigo até o final. Aqui em baixo do post temos uma seção de comentários, comente ao termina de ler, sua opinião é importante para nós.

Códigos VBA – 10 Macros para Aumentar a Produtividade Programando em VBA

Antes de começar no ponto X do assunto gostaria de deixar bem claro o seguinte, tudo que for dito nesse post não é uma regra a ser seguida. Todo programador tem seu método, forma, jeito de programar. Estou aqui para compartilhar informações e aprender com vocês, o meu foco não é ensinar e dizer qual forma você deve programar. Mas sim no objetivo de mostrar caminhos mais simples que talvez você não saiba ainda.

Você já pensou na possibilidade de arquivar códigos padrões mais usados em aplicações do VBA?

Isso poderia lhe economizar um bom tempo de trabalho. Atualmente salvo vários códigos que acho importante, são os mais usados para desenvolver aplicações, muita das vezes precisamos digitaliza-los sempre que iniciamos um novo projeto.




Quando não nos lembramos da função em si, corremos para a internet a procura do código. Você sabia que isso nos toma muito tempo, é algo completamente desnecessário, principalmente para quem desenvolve projetos para terceiros.

Por exemplo, funções do tipo:

  • Formato de Hora
  • Formato de Datas
  • Formato de Documentos

E por aí vai rs, essas funções são padrões e seria muito interessante pensarmos mais a fundo sobre essa possibilidade. Decidi separa aqui 10 códigos que uso em 99% das minhas aplicações, vou deixar o bloco de notas para que você também possa arquivar e usa-los.

Códigos VBA 01 – Formatação do CPF

Códigos VBA 01 – Formatação do CPF

TextBox1.MaxLength = 14
     Select Case KeyAscii
          Case 8
          Case 13: SendKeys "{TAB}"
          Case 48 To 57
             If TextBox1.SelStart = 3 Then TextBox1.SelText = "."
             If TextBox1.SelStart = 7 Then TextBox1.SelText = "."
             If TextBox1.SelStart = 11 Then TextBox1.SelText = "-"
          Case Else: KeyAscii = 0
       End Select

Esse código é responsável por formata a TextBox em CPF dentro do seu evento Keypress, ele é completamente padrão e você poderá usar sempre nas suas aplicações do VBA. É uma função que trabalha relativamente bem, o motivo dele ser usados dentro do evento Keypress é para que a ação aconteça no momento em que o usuário digitar o valor na TextBox.

Códigos VBA 02 – Formatação do CNPJ

Códigos VBA 02 – Formatação do CNPJ

TextBox1.MaxLength = 18
     Select Case KeyAscii
          Case 8
          Case 13: SendKeys "{TAB}"
          Case 48 To 57
             If TextBox1.SelStart = 2 Then TextBox1.SelText = "."
             If TextBox1.SelStart = 6 Then TextBox1.SelText = "."
             If TextBox1.SelStart = 10 Then TextBox1.SelText = "/"
             If TextBox1.SelStart = 15 Then TextBox1.SelText = "-"
          Case Else: KeyAscii = 0
       End Select

Esse código como prontamente dito é responsável pela formatação do CNPJ, simultâneo ao CPF ele também será utilizado no seu evento Keypress, essa função é bem similar em programas do tipo cadastros, financeiros, estoque e etc. Ele e o CPF são completamente iguais com poucas variações no código, utilizo muito essa função e por isso ele faz parte de minha lista de códigos salvos.

Códigos VBA 03 – Formatação do Telefone Fixo

Códigos VBA 03 – Formatação do Telefone Fixo

TextBox1.MaxLength = 14
     Select Case KeyAscii
          Case 8
          Case 13: SendKeys "{TAB}"
          Case 48 To 57
             If TextBox1.SelStart = 0 Then TextBox1.SelText = "("
             If TextBox1.SelStart = 3 Then TextBox1.SelText = ")" & Space(1)
             If TextBox1.SelStart = 9 Then TextBox1.SelText = "-"
          Case Else: KeyAscii = 0
       End Select

Esse código é responsável por formata o telefone fixo dentro do evento Keypress da TextBox, repare que ele é bem parecido com as funções ditas acima porem é preciso analisar a mudança de alguns aspectos no código. A lógica deles é a mesma, porem o corpo e a estrutura é adaptável para o evento requerido.

Códigos VBA 04 – Formatação do Telefone Celular

Códigos VBA 04 – Formatação do Telefone Celular

TextBox1.MaxLength = 15
     Select Case KeyAscii
          Case 8
          Case 13: SendKeys "{TAB}"
          Case 48 To 57
             If TextBox1.SelStart = 0 Then TextBox1.SelText = "("
             If TextBox1.SelStart = 3 Then TextBox1.SelText = ")" & Space(1)
             If TextBox1.SelStart = 10 Then TextBox1.SelText = "-"
          Case Else: KeyAscii = 0
       End Select

Não tem muito que comentar sobre esse código, ele é responsável por formata o celular dentro da TextBox no seu evento Keypress. Observando o código do Telefone Fixo podemos notar algumas diferenças básicas. Porem da forma que ele já estar basto copiar e colar, isso me faz ganhar um tempo grande na hora de fazer a formatação dos controles.

Códigos VBA 05 – Formatação da Data

Códigos VBA 05 – Formatação da Data

 TextBox1.MaxLength = 10
     Select Case KeyAscii
          Case 8
          Case 13: SendKeys "{TAB}"
          Case 48 To 57
             If TextBox1.SelStart = 2 Then TextBox1.SelText = "/"
             If TextBox1.SelStart = 5 Then TextBox1.SelText = "/"
          Case Else: KeyAscii = 0
       End Select

Esse código é responsável por formata à data dentro da TextBox no seu evento Keypress. A data é um campo muito utilizado e sempre tem muitas pesquisas no Google sobre como formata o controle nesse modo. Por ser muito usado ele estar nessa lista de códigos que uso, tenho certeza que você também irar precisar bastante.

Códigos VBA 06 – Formatação de Data por Extenso

Códigos VBA 06 – Formatação de Data por Extenso

TextBox1 = FormatDateTime(Now(), vbLongDate)

Esse código é relativamente simples, sua principal função é formata um campo TextBox em data por extenso. Observe que para esse exemplo nós usamos no evento click de um botão veja:

Códigos VBA 06 – Formatação de Data por Extenso

Mas é possível usar no evento Load do form ou no Exit da TextBox (etc..), esses métodos dependem da necessidade de cada usuário. Esse comando é muito usado quando precisamos que a data por extenso seja gerada automaticamente. Esse código me faz lembra-se de outro que é muito bacana, é uma função que transforma real em texto por extenso. Temos o artigo bem aqui…

Códigos VBA 07 – Formatação de Número em Moeda

Códigos VBA 07 – Formatação de Número em Moeda

TextBox1 = Format(TextBox1, "R$#,##0.00")

Utilizo bastante esse código nos meus trabalhos do Excel, podemos notar que para esse exemplo também estamos usando-o no evento clique do botão. Normalmente o colocamos no evento Exit de um TextBox, isso é, após o usuário digitar o valor e sair do controle ele formatará.

Códigos VBA 08 – Preencher ComboBox

Códigos VBA 08 – Preencher ComboBox

ComboBox1.AddItem ("ACRE")
    ComboBox1.AddItem ("ALAGOAS")
    ComboBox1.AddItem ("AMAPÁ")
    ComboBox1.AddItem ("AMAZONAS")
    ComboBox1.AddItem ("BAHIA")
    ComboBox1.AddItem ("CEARÁ")
    ComboBox1.AddItem ("DISTRITO FEDERAL")
    ComboBox1.AddItem ("ESPÍRITO SANTO")
    ComboBox1.AddItem ("GOIÁS")
    ComboBox1.AddItem ("MARANHÃO")
    ComboBox1.AddItem ("MATO GROSSO")
    ComboBox1.AddItem ("MARO GROSSO DO SUL")
    ComboBox1.AddItem ("MINAS GERAIS")
    ComboBox1.AddItem ("PARÁ")
    ComboBox1.AddItem ("PARAÍBA")
    ComboBox1.AddItem ("PARANÁ")
    ComboBox1.AddItem ("PERNAMBUCO")
    ComboBox1.AddItem ("PIAUÍ")
    ComboBox1.AddItem ("RIO GRANDE DO NORTE")
    ComboBox1.AddItem ("RIO GRANDE DO SUL")
    ComboBox1.AddItem ("RIO DE JANEIRO")
    ComboBox1.AddItem ("RONDÔNIA")
    ComboBox1.AddItem ("RORAIMA")
    ComboBox1.AddItem ("SANTA CATARINA")
    ComboBox1.AddItem ("SÃO PAULO")
    ComboBox1.AddItem ("SERGIPE")
    ComboBox1.AddItem ("TOCANTINS")

Esse código é responsável por preencher uma ComboBox com os estados do brasil. Confesso que tenho pavor de programar isso, principalmente quando se usar as siglas, por esse motivo ele estar salvo na minha pasta de códigos.

Códigos VBA 09 – Formatação de Letra Maiúscula

Códigos VBA 09 – Formatação de Letra Maiúscula

Dim pos As Integer
        pos = TextBox1.SelStart
        TextBox1.Text = VBA.UCase(TextBox1.Text)
        TextBox1.SelStart = pos

Tenho utilizado muito essa função nos trabalhos do Excel, no meu caso é mais por uma questão de organização do banco de dados. Gosto sempre que as informações fiquem organizadas e com a letra no mesmo formato. Isso me permite que obrigue o usuário apenas digitar texto em maiúsculas, dessa forma o banco de dados recebe o mesmo conteúdo.

E importante ressaltar que esse comando precisar se usados dentro do evento Keyup. Não me recordo o motivo nesse momento, por via das dúvidas utilize no evento Keyup da TextBox.

Códigos VBA 10 – Formatação do CEP

  TextBox1.MaxLength = 9
     Select Case KeyAscii
          Case 8
          Case 13: SendKeys "{TAB}"
          Case 48 To 57
             If TextBox1.SelStart = 5 Then TextBox1.SelText = "-"
            
          Case Else: KeyAscii = 0
       End Select

Esse código e responsável por formata o CEP na TextBox dentro do seu evento Keypress. Esse comando é muito utilizado em cadastro de clientes onde precisamos registrar o CEP do cliente. Esse código não poderia ficar fora dessa lista.

Conclusão Geral Sobre Artigo

Viram como é possível economizar tempo tendo esses códigos prontos arquivados em alguma pasta do seu computador. Tenho muito mais comandos porem ficarão para um próximo artigo. As vezes perdemos muitos minutos para reconstruir códigos que são padrões no VBA.

Estarei deixando o link da planilha com os comandos espero que goste, em breve vamos falar de mais funções avançadas aqui no blog. Para isso preciso que você comente aqui, dessa forma saberei o que posta no próximo artigo.

Grande abraço!

Artigo de propriedade do site Diário Excel. Visite o blog do parceiro Welisson Silva

Diário Excel

Veja mais em nosso site…

Planilhas para a gestão do seu negócio em Excel

Gerar orçamento em Excel e salvar em PDF

Planilha simulador de parcelamento em Excel

Como controlar recebimentos em cartões de crédito

A Importância do Fluxo de Caixa nas Empresas

Sistema Controle de Contas a Pagar e Receber

Planilha agenda de contato corporativo em Excel

Planilha para Controlar de Dízimos e Ofertas em Excel

Planilhas em Excel para Abertura de Empresa

Como Usar a função PROCV (VLOOKUP) do Excel

Macro para salvar cadastro de clientes Excel VBA

Como calcular o lucro em porcentagem no Excel

Copiar dados entre planilhas do Excel usando uma macro

Planilha em Excel para Cálculo de Horas Extras Grátis

Dicas para Ajudá-lo a Dominar o Excel no Trabalho Rapidamente

Clique Aqui para Baixar a Planilha Agora