Digitação automática de zeros Excel VBA

PMT - Cálculo do valor da parcela e Amortização
PMT – Cálculo do valor da parcela e Amortização
31 de julho de 2011
Planilhando
Planilhando
31 de julho de 2011

Objetivo: Demonstrar a utilização de códigos VBA para inserir dados automaticamente no Excel, por exemplo, zeros á esquerda ou retirar a vírgula de um número decimal e formatar com zeros á esquerda.

Esta digitação automática de dados no Excel pode ser muito útil para cadastro de dados faltantes em arquivos texto formatados por exemplo.

Na planilha exemplo foram criados dois campos, um para digitação da loja, aonde pode ser digitado apenas o número 1, e os zeros á esquerda são inseridos automaticamente, e outro para digitar um valor formatado, digitando um valor decimal, separado por vírgula, que será transformado em um número formatado com zeros á esquerda e sem a vírgula.

Abaixo o código fonte utilizado na planilha com os devidos comentários

'O evento Worksheet_Change é disparado quando há uma alteração em qualquer dado da planilha
Private Sub Worksheet_Change(ByVal Target As Range)
    'Este comando envia para o comando Sair: ao final desta sub a execução do processo
    'Evitando desta forma que a verificação dos eventos
    'continue desativada caso ocorra algum erro.
    On Error GoTo Sair

    'Desabilita a escuta de eventos para que não entre em loop ao alterar a célula
    Application.EnableEvents = False

    'Em Target.Row identifica se é a linha é maior ou igual a segunda linha
    'Em Target.Column identifica se a coluna é a correta a ser formatada
    If Target.Row >= 2 And Target.Column = 1 Then
        'A função CStr converte qualquer valor em texto
        'A função Len conta o número de caracteres de uma cadeia de caracteres
        'A função String repete um determinado número X vezes,
        'no caso 3 menos o número de caracteres digitados
        'O + nesta função realiza a concatenção dos zeros e do valor digitado
        Target.Value = CStr(String(3 - Len(Target.Value), "0")) + CStr(Target.Value)
    End If

    'Neste bloco de código é realizada a mesma verificação,
    'apenas com tratamento diferente dos dados
    If Target.Row >= 2 And Target.Column = 2 Then
        'Multiplica o valor por 100 para excluir a vírgula
        Target.Value = Target.Value * 100
        'Formata o valor com 15 digitos no total.
        Target.Value = CStr(String(15 - Len(Target.Value), "0")) + CStr(Target.Value)
    End If

Sair:
    Application.EnableEvents = True
End Sub

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

1 Comentário

  1. André disse:

    Parabéns pelo trabalho! visito sempre seu site… Aproveitando, gostaria de indicar o site http://www.iAulas.com.br lá você vai encontrar mais de 10 mil apostilas para download gratuito dos mais variados assuntos, inclusive são dezenas de apostilas sobre Excel… espero ter ajudado…

Deixe uma resposta

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.