Eventualmente dicas sobre outros programas, Windows e hardware.
quarta-feira, 11 de abril de 2007
Calculando o dígito verificador do CNPJ
Adaptei este código para o Visual Basic, é só desenhar os TextBox's e colocar os CommandButton's.
Se alguém quiser o projeto pronto com o form e o código, é só me mandar um e-mail.
No próximo post, o cálculo para o dígito do CPF.
Dim cgc As String
cgc = Text1.Text
If Text1.Text = "" Then Exit Sub
Dim I As Integer 'utilizada nos FOR... NEXT
Dim strCGC As String 'armazena a parte do CGC entre /0001- ou seja 0001
Dim strcampo As String 'armazena do CPF que será utilizada para o cálculo
Dim strCaracter As String 'armazena os digitos do CPF da direita para a esquerda
Dim intNumero As Integer 'armazena o digito separado para cálculo (uma a um)
Dim intMais As Integer 'armazena o digito específico multiplicado pela sua base
Dim intSoma As Long 'armazena a soma dos digitos multiplicados pela sua base(intmais)
Dim intSoma1 As Long 'armazena a soma dos 8 primeiros digitos multiplicados pela sua base(intmais)
Dim intSoma2 As Long ''armazena a soma dos 4 ultimos digitos multiplicados pela sua base(intmais)
Dim dblDivisao As Double 'armazena a divisão dos digitos*base por 11
Dim intInteiro As Long 'armazena inteiro da divisão
Dim intResto As Integer 'armazena o resto
Dim intDig1 As Integer 'armazena o 1º digito verificador
Dim intDig2 As Integer 'armazena o 2º digito verificador
Dim strConf As String 'armazena o digito verificador
intSoma = 0
intSoma1 = 0
intSoma2 = 0
intNumero = 0
intMais = 0
'Inicia cálculos do 1º dígito
'Separa os dígitos do CGC que serão multiplicados de 2 a 9.
strCGC = Right(cgc, 4)
strCGC = Left(strCGC, 4)
strcampo = Left(cgc, 8)
strcampo = Right(strcampo, 4) & strCGC
For I = 2 To 9
strCaracter = Right(strcampo, I - 1)
intNumero = Left(strCaracter, 1)
intMais = intNumero * I
intSoma1 = intSoma1 + intMais
Next I
'Separa os 4 primeiros dígitos do CGC
strcampo = Left(cgc, 4)
For I = 2 To 5
strCaracter = Right(strcampo, I - 1)
intNumero = Left(strCaracter, 1)
intMais = intNumero * I
intSoma2 = intSoma2 + intMais
Next I
intSoma = intSoma1 + intSoma2
dblDivisao = intSoma / 11
intInteiro = Int(dblDivisao) * 11
intResto = intSoma - intInteiro
If intResto = 0 Or intResto = 1 Then
intDig1 = 0
Else
intDig1 = 11 - intResto
End If
intSoma = 0
intSoma1 = 0
intSoma2 = 0
intNumero = 0
intMais = 0
'Inicia cálculos do 2º dígito
strCGC = Right(cgc, 4)
strCGC = Left(strCGC, 4)
strcampo = Left(cgc, 8)
strcampo = Right(strcampo, 3) & strCGC & intDig1
For I = 2 To 9
strCaracter = Right(strcampo, I - 1)
intNumero = Left(strCaracter, 1)
intMais = intNumero * I
intSoma1 = intSoma1 + intMais
Next I
'Separa os 4 primeiros dígitos do CGC
strcampo = Left(cgc, 5)
For I = 2 To 6
strCaracter = Right(strcampo, I - 1)
intNumero = Left(strCaracter, 1)
intMais = intNumero * I
intSoma2 = intSoma2 + intMais
Next I
intSoma = intSoma1 + intSoma2
dblDivisao = intSoma / 11
intInteiro = Int(dblDivisao) * 11
intResto = intSoma - intInteiro
If intResto = 0 Or intResto = 1 Then
intDig2 = 0
Else
intDig2 = 11 - intResto
End If
strConf = intDig1 & intDig2
Text2.Text = strConf
End Sub
Assinar:
Postar comentários (Atom)
Pesquisar este blog
Arquivo do blog
-
▼
2007
(129)
-
▼
abril
(33)
- Limites do MS Word
- Cuidado com referências em macros
- Algumas alternativas ao Microsoft Office
- Código para classificar planilhas
- Alguns termos técnicos
- Centésimo post!
- Descobrindo senhas com programas gratuitos
- Procurando em várias planilhas da pasta
- Gravador de macro do Excel
- Limpando a célula
- Backup no Outlook Express e MS Outlook
- Cálculo do dígito verificador - módulo 11
- Limitar a área de utilização da planilha
- Cálculo do dígito verificador do CPF
- Calculando o dígito verificador do CNPJ
- Ocultando seu trabalho - Excel
- A vida mais fácil “mandando” o Windows executar
- Salvando macros no Excel 2007
- Para inicializar o Adobe Reader mais rapidamente
- Otimizando a área de trabalho do Excel
- Excel MMVII
- Laptop ou Notebook
- E-mail's falsos
- Tradução das funções de MATEMÁTICA E TRIGONOMETRIA...
- Vídeo aulas
- Texto com data na mesma célula
- Alinhando números no Word
- Tradução das funções FINANCEIRAS em inglês
- Tradução das funções de INFORMAÇÕES em inglês
- Tradução das funções de LÓGICA em inglês
- Tradução das funções de PROCURA E REFERÊNCIA em in...
- Tradução das funções de TEXTO em inglês
- Tradução das funções de DATA em inglês
-
▼
abril
(33)
Quem sou eu
- Kazu
- Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.
Nenhum comentário:
Postar um comentário