Página 1 de 1

[MODELO] Objeto ModClasse - Validação Documentos Brasileiros

Enviado: 26 Jul 2016 às 16:48
por Mikel
Boa tarde a todos.

Este é meu primeiro Modelo postado aqui no fórum. Espero que gostem do resultado.

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.xlsm
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 Tomás Vásquez.
Espero que todos gostem e conto com a colaboração de todos nesta avaliação.

Abraço a todos e excelente semana.

Re: [MODELO] Objeto ModClasse - Validação Documentos Brasile

Enviado: 26 Jul 2016 às 18:29
por DJunqueira
Olá Mikel, fiz um pequeno teste nas suas funções e foi tudo Ok, mas me pergunto se não seria interessante forçar a identificação do número como CPF, pois ele tem apenas um dígito a menos q o Título de Eleitor e um erro de digitação poderia fazer com q a validação checasse o número de forma errada.

Na minha concepção as funções poderiam ficar da seguinte forma:
=DOCVALIDATE(B20;DFE)
=DOCVALIDATE(B20;CNPJ)
=DOCVALIDATE(B20;CPF)
=DOCVALIDATE(B20;TE)

Re: [MODELO] Objeto ModClasse - Validação Documentos Brasile

Enviado: 26 Jul 2016 às 23:43
por Mikel
DJunqueira, boa noite.

Inicialmente essa seria minha intenção, porém eu queria reaproveitar o Tipo de Variável Enumerada existente na Classe ValidateDocument, sem ter que criar outra Enumeração no Módulo ou Formulário. Quando tentei gerar um parâmetro das funções usando esse tipo de dado Enumerado da Classe, foi gerado um erro na execução.

Esse é um modelo inicial para compreender melhor a utilização do recurso de Criação de Objeto com Módulo de Classe, pois existem recursos como Implementações (Implement) e Criação de Eventos (Event, RaiseEvent e WithEvents), que eu sei da existência mas ainda não compreendi as possibilidades de uso.

Outro ponto existente é eliminar as Funções Privadas de Formatação e Validação, criando uma única função para identificação e execução, de acordo como documento informado. Mas não quero realizar isso e fazer com qua a mesma se torne um procedimento gigantesco e sem muito sentido. Tento trabalhar sempre com Scripts mais enxutos. Mas sobre isso, gostaria da opinião dos demais usuários.

Tenho feito muitas buscas de materiais que falam sobre o desenvolvimento VB6/VBA com Módulo de Classes e tentando entender todos os recursos.

Mas gostei muito da sua opinião. Isso mostra que meu plano inicial não estava errado e que realmente preciso arrumar uma forma de corrigir essa falha.

Muito obrigado pelo teu retorno e vou atualizando aqui, conforme evolução do mesmo. Além disso, fico no aguardo de novas análises.

Abraços!!!

Re: [MODELO] Objeto ModClasse - Validação Documentos Brasile

Enviado: 29 Jul 2016 às 13:53
por DJunqueira
Olá Mikel

Usei novamente sua planilha e reparei q entrando com um número q começa com zero a planilha 'come' o zero.
A simples solução é formatar as células de entrada p/ Texto.

Abraço

Re: [MODELO] Objeto ModClasse - Validação Documentos Brasile

Enviado: 06 Jul 2018 às 19:27
por rafaleroy
Caros Colegas!
Prazer, me chamo Rafael!!!

Pelo meu pouco conhecimento em Excel, humildemente peço a gentileza de me ajudarem com um detalhe na validação do título de eleitor via VBA.
Conheço VBA a ponto de fazer programação? Não! rs - Eu já fiz programação em Delphi há... deixa os anos para lá neh? rsss... Mas enfim, em uma planilha que estou usando para empresa, preciso da validação do título de eleitor. Ache um "comando", "linha de programação" (desculpe a ignorância, mas não sei qual o nome correto que se dá para a programação do módulo), que faz o serviço, porém me deparei com um número de título (já consultei no TSE) e ele é verdadeiro, mas a planilha acusa como falso.
Será que vocês poderiam me auxiliar nesse caso? Posso postar o código do comando aqui para mostrar ou como faço?
O número do título que estou tentando validar é 137276160281

Re: [MODELO] Objeto ModClasse - Validação Documentos Brasile

Enviado: 12 Jul 2018 às 00:10
por Mikel
Rafael, boa noite.

Cara, estive dando uma olhada no número que me enviou e realmente os valores não batem.

Cheguei a fazer o cálculo na mão, para confirmar se o calculo no sistema estava ou não com problema. Nos meus cálculos/testes, o dígito verificador na não chega em 81, mas apenas em 80.

Sobre a validação no site do TSE, também vi que o Título existe, só não esta sendo validado.

Vou dar uma procurada e me atualizar, para saber se não houve alguma mudança na forma do cálculo.

Estarei olhando e, assim que tenha uma resposta, posto aqui novamente.

Abraços e obrigado pelo feedback

Re: [MODELO] Objeto ModClasse - Validação Documentos Brasile

Enviado: 15 Jul 2018 às 23:04
por rafaleroy
Eu que agradeço pela atenção!!!!