|
|
|
|
|
Dicas
|
|
Visual Basic (Validações)
|
|
|
Título da Dica: Valida Container
|
|
|
|
Postada em 20/4/2007 por Sader
szpere@excelenciasolucoes.com.br
Public Function ValidaContainer(Identificacao As String) As Boolean Dim SomaLetraNumeros As Integer Dim x As Integer Dim PotenciadeDois As Integer Dim NumeroMultiplicado As Integer Dim DivididoPorOnze As Currency Dim InteirodeDivididoPorOnze As Integer Dim digito As Integer
ValidaContainer = True Identificacao = Replace(Identificacao, "-", "") Identificacao = Replace(Identificacao, ".", "") If Len(Trim(Identificacao)) <> 11 Then ValidaContainer = False Else PotenciadeDois = 1 For x = 1 To 10 NumeroMultiplicado = VerificaTabelaContainer(Mid(Trim(Identificacao), x, 1)) * PotenciadeDois SomaLetraNumeros = SomaLetraNumeros + NumeroMultiplicado PotenciadeDois = PotenciadeDois * 2 Next x DivididoPorOnze = SomaLetraNumeros / 11 InteirodeDivididoPorOnze = Int(DivididoPorOnze) InteirodeDivididoPorOnze = InteirodeDivididoPorOnze * 11 digito = SomaLetraNumeros - InteirodeDivididoPorOnze If digito = 10 Then digito = 0 If digito <> Val(Right(Trim(Identificacao), 1)) Then ValidaContainer = False End If Else If digito <> Val(Right(Trim(Identificacao), 1)) Then ValidaContainer = False End If End If End If End Function
Public Function VerificaTabelaContainer(Letra As String) As Integer If UCase(Trim(Letra)) = "A" Then VerificaTabelaContainer = 10 ElseIf UCase(Trim(Letra)) = "B" Then VerificaTabelaContainer = 12 ElseIf UCase(Trim(Letra)) = "C" Then VerificaTabelaContainer = 13 ElseIf UCase(Trim(Letra)) = "D" Then VerificaTabelaContainer = 14 ElseIf UCase(Trim(Letra)) = "E" Then VerificaTabelaContainer = 15 ElseIf UCase(Trim(Letra)) = "F" Then VerificaTabelaContainer = 16 ElseIf UCase(Trim(Letra)) = "G" Then VerificaTabelaContainer = 17 ElseIf UCase(Trim(Letra)) = "H" Then VerificaTabelaContainer = 18 ElseIf UCase(Trim(Letra)) = "I" Then VerificaTabelaContainer = 19 ElseIf UCase(Trim(Letra)) = "J" Then VerificaTabelaContainer = 20 ElseIf UCase(Trim(Letra)) = "K" Then VerificaTabelaContainer = 21 ElseIf UCase(Trim(Letra)) = "L" Then VerificaTabelaContainer = 23 ElseIf UCase(Trim(Letra)) = "M" Then VerificaTabelaContainer = 24 ElseIf UCase(Trim(Letra)) = "N" Then VerificaTabelaContainer = 25 ElseIf UCase(Trim(Letra)) = "O" Then VerificaTabelaContainer = 26 ElseIf UCase(Trim(Letra)) = "P" Then VerificaTabelaContainer = 27 ElseIf UCase(Trim(Letra)) = "Q" Then VerificaTabelaContainer = 28 ElseIf UCase(Trim(Letra)) = "R" Then VerificaTabelaContainer = 29 ElseIf UCase(Trim(Letra)) = "S" Then VerificaTabelaContainer = 30 ElseIf UCase(Trim(Letra)) = "T" Then VerificaTabelaContainer = 31 ElseIf UCase(Trim(Letra)) = "U" Then VerificaTabelaContainer = 32 ElseIf UCase(Trim(Letra)) = "V" Then VerificaTabelaContainer = 34 ElseIf UCase(Trim(Letra)) = "W" Then VerificaTabelaContainer = 35 ElseIf UCase(Trim(Letra)) = "X" Then VerificaTabelaContainer = 36 ElseIf UCase(Trim(Letra)) = "Y" Then VerificaTabelaContainer = 37 ElseIf UCase(Trim(Letra)) = "Z" Then VerificaTabelaContainer = 38 ElseIf UCase(Trim(Letra)) = "1" Then VerificaTabelaContainer = 1 ElseIf UCase(Trim(Letra)) = "2" Then VerificaTabelaContainer = 2 ElseIf UCase(Trim(Letra)) = "3" Then VerificaTabelaContainer = 3 ElseIf UCase(Trim(Letra)) = "4" Then VerificaTabelaContainer = 4 ElseIf UCase(Trim(Letra)) = "5" Then VerificaTabelaContainer = 5 ElseIf UCase(Trim(Letra)) = "6" Then VerificaTabelaContainer = 6 ElseIf UCase(Trim(Letra)) = "7" Then VerificaTabelaContainer = 7 ElseIf UCase(Trim(Letra)) = "8" Then VerificaTabelaContainer = 8 ElseIf UCase(Trim(Letra)) = "9" Then VerificaTabelaContainer = 9 End If End Function
|
|
|
|
|