Vídeo recomendado
https://youtu.be/diWPPPhW-9E

[MODELO] Objeto Módulo Classe - Validação Documentos Brasileiros

Fórum para agrupar todas as propostas de modelos de planilhas de Excel que essa comunidade consegue imaginar. Teve uma idéia? Produziu algo bem bacana? Esse é o lugar!

Moderador: Rafael Monteiro

Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

[MODELO] Objeto Módulo Classe - Validação Documentos Brasileiros

Mensagem por Mikel Silveira Fraga »

Boa tarde a todos.

Venho com mais um modelo para os amigos do fórum.

A alguns meses, venho aprendendo a trabalhar com a criação de Objetos, através do Módulo de Classe, localizado no Visual Basic Editor. Para meu aprendizado, desenvolvi uma classe que realiza Validação do Dígito Verificador de documentos brasileiros, como:
- Cadastro Nacional de Pessoa Jurídica (CNPJ);
- Cadastro de Pessoa Física (CPF);
- Título de Eleitor (TE);
- Documento Fiscal Eletrônico (DFe).
Ps.1: Quero ressaltar que os códigos para a realização dos cálculos, foram baseados em modelos de outros sites da web. Dentro da Classe ValidadeDocument, estão localizados todas as referências dos autores que desenvolveram os códigos originais.

Além da função de Validação do Dígito Verificador, o Objeto criado também altera a formatação dos documentos, adicionando/removendo os caracteres especiais existentes na formatação dos documentos.

A proposta do modelo em anexo é demonstrar essas funcionalidades de duas formas diferentes:
- A 1ª forma é através de Userform, onde pode ser utilizada para validar documentos em um cadastro de clientes, por exemplo;
- A 2ª forma é através da Criação de Funções(Function) como Fórmulas do Excel.
ModClasse para Validar Documentos.zip
Desenvolvido por: Mikel S Fraga
(57.88 KiB) Baixado 616 vezes
Gostaria muito que o projeto fosse não apenas baixado e utilizado/adaptado pelos usuários, mas sim avaliado de forma um pouco criteriosa, principalmente pelos usuários que entendam um pouco sobre Programação Orientada a Objeto no VB6/VBA. Através de sugestões, quero melhorara estrutura de desenvolvimento deste formato.

Ps.2: Este modelo também se encontra no fórum do Guru do Excel.
Espero que todos gostem e conto com a colaboração de todos nesta avaliação.

Abraço a todos e excelente semana.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
netocasaroli
Consultor
Consultor
Mensagens: 219
Registrado em: Seg Mai 11, 2015 5:24 pm
Localização: Londrina-PR

Re: [MODELO] Objeto Módulo Classe - Validação Documentos Brasileiros

Mensagem por netocasaroli »

Boa noite Mikel,

Primeiramente, parabéns pelo projeto.

Fiz um teste aqui e notei a seguinte situação. Se digito no UserForm um CPF com o DV correto e clico para verificar, ele retorna a validação correta. No entanto, se eu clicar primeiro em "Inserir Formatação" e depois em "Validar Dígito Verificador", ele retorna a validação errada.

Tomei a liberdade de depurar o seu código. Na sub CheckDocument, mesmo a variável pNrDoc não ser uma Null String, no comando If pNrDoc <> "" Then a rotina está interpretando a variável como Null String. Dessa forma, a variável pNrDoc não assume o valor da aNrDoc, não concluindo corretamente o processo de validação. Na verdade, quando o depurador entra em CheckDocument, a variável pNrDoc assume o valor Null, mas no próximo passo do depurador, se verificar da janela de Verificação Imediada o valor de pNrDoc, verá o valor do CPF com a formatação.

Espero ter ajudado um pouco.

Um abraço e bom final de semana.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: [MODELO] Objeto Módulo Classe - Validação Documentos Brasileiros

Mensagem por Mikel Silveira Fraga »

Neto, bom dia.

Não havia percebido esse erro, mas vou dar uma olhada depois. Na verdade, apesar de parecer a mesma coisa dos demais desenvolvimentos no VBA, a recurso de Criação de Classes é bem novo pra mim.

No início desse ano, comecei a montar um outra classe, muito maior do que essa. Porém, na época, eu realmente não compreendi muito o seu funcionamento, de forma que continuei a evolução, mas de uma forma totalmente desordenada e indo contra o Conceito de Programação Orientada a Objetos. Porém, vi que o resultado, mesmo a classe estando totalmente disforme, foi surpreendente.

Por esse motivo, resolvi montar uma classe que fosse útil, porém mais simples, para testar e compartilhar com os amigos. Além de ser uma forma de me auto-avaliar com o desempenho e retorno de cada um de vocês. Por esse motivo havia pedido que testassem e me retornassem erros e opiniões.

Então cara, não se preocupe com a questão da liberdade. Essa sua observação e apontamento são mais do que válidos para mim.

Bem, vou indo nessa. Excelente final de semana, pra ti e todos do fórum.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder