LINHA DIGITAVEL DO SANTANDER
Ola amigos!
alguem tem ai por gentileza o modulo de calculo da linha digitavel do Santander?
desde já agradeço
alguem tem ai por gentileza o modulo de calculo da linha digitavel do Santander?
desde já agradeço
[ô] dados Real/Santander
[ô]DECLARAR
Dim rdv1
Dim rdv2
Dim rdv3
Dim rdvL
Dim rdnD
Dim rdvG
Dim digitao
Dim vc As Boolean
Private Sub dv1Real()
Dim valor, div, subt, dv
Dim d(9) As Integer
Dim resultado(9) As Integer
Dim peso
valor = [Ô]3569[Ô] & Boleto2.agencia.Caption & Mid(Boleto2.cod, 1, 1)
TOTAL = 0
peso = 2
For i = 9 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
dv = 0
rdv1 = dv
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
Exit Sub
End If
If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2
div = c2 Mod 10
If div = 0 Then
rdv1 = div
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
Exit Sub
End If
subt = 10 - div
End If
dv = subt
rdv1 = dv
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
End Sub
Private Sub DigitaoCobranca()
Dim valor, div, subt, dv As Integer
Dim d(18) As Integer
Dim resultado(18) As Integer
Dim peso
valor = Mid(Boleto2.nnumero.Caption, 7, 7) & Boleto2.agencia.Caption & Boleto2.cod.Caption
TOTAL = 0
peso = 2
For i = 18 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
digitao = 0
Exit Sub
End If
If Int(subt) > 9 Then
digitao = 0
Exit Sub
End If
dv = subt
digitao = dv
End Sub
Private Sub dv2Real()
Dim valor, div, subt, dv
Dim d(10) As Integer
Dim resultado(10) As Integer
Dim peso
valor = Mid(Boleto2.cod, 2, 6) & digitao & Mid(Boleto2.nnumero, 1, 3)
TOTAL = 0
peso = 2
For i = 10 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
dv = 0
rdv2 = dv
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
Exit Sub
End If
If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2
div = c2 Mod 10
If div = 0 Then
rdv2 = div
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
Exit Sub
End If
subt = 10 - div
End If
dv = subt
rdv2 = dv
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
End Sub
Private Sub dv3Real()
Dim valor, div, subt, dv
Dim d(10) As Integer
Dim resultado(10) As Integer
Dim peso
valor = Mid(Boleto2.nnumero, 4, 10)
TOTAL = 0
peso = 2
For i = 10 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
dv = 0
rdv3 = dv
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
Exit Sub
End If
If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2
div = c2 Mod 10
If div = 0 Then
rdv3 = div
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
Exit Sub
End If
subt = 10 - div
End If
dv = subt
rdv3 = dv
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
End Sub
Private Sub dvGReal()
Dim vlr, div, subt, dv
Dim d(43) As Integer
Dim resultado(43) As Integer
Dim peso
Dim totalG
vlr = [Ô]3569[Ô] & Fator(Boleto2.vencimento.Caption) & SequenciarValor(Boleto2.valor.Caption) & Boleto2.agencia.Caption & Boleto2.cod & digitao & Boleto2.nnumero.Caption
totalG = 0
peso = 2
For i = 43 To 1 Step -1
d(i) = Mid(vlr, i, 1)
resultado(i) = (d(i) * peso)
totalG = totalG + (0#) + resultado(i)
peso = peso + 1
If peso > 9 Then peso = 2
Next i
div = totalG Mod 11
subt = 11 - (0#) - div
If subt >= 11 Then
subt = 11 - subt
End If
If subt = 10 Or subt = 0 Or subt = 1 Then
rdvG = 1
[ô]MsgBox [Ô]DV GERAL2: [Ô] & rdvG
Exit Sub
End If
dv = subt
rdvG = dv
[ô]MsgBox [Ô]DV GERAL: [Ô] & rdvG
End Sub
Function FatorREAL(data As Date) As String
Dim sMsg As String
Dim Dinicial As Date
Dinicial = [Ô]23/07/2000[Ô]
sMsg = DateDiff([Ô]d[Ô], Dinicial, data)
FatorREAL = sMsg
End Function
Public Function SequenciarValor(valorSeq As String)
Dim a1, b1, c1, Tot, ver
ver = Len(valorSeq) - (0#) - 1
a1 = InStr(valorSeq, [Ô],[Ô])
b1 = Left(valorSeq, a1 - 1)
c1 = Mid(valorSeq, ver, 2)
Tot = b1 & c1
SequenciarValor = Format(Tot, [Ô]0000000000[Ô])
End Function
ESTOU TE MANDANDO O CODIGO DO MEU SISTEMA PARA VOCÊ ADAPTAR AO SEU.
Ate.......
[ô]DECLARAR
Dim rdv1
Dim rdv2
Dim rdv3
Dim rdvL
Dim rdnD
Dim rdvG
Dim digitao
Dim vc As Boolean
Private Sub dv1Real()
Dim valor, div, subt, dv
Dim d(9) As Integer
Dim resultado(9) As Integer
Dim peso
valor = [Ô]3569[Ô] & Boleto2.agencia.Caption & Mid(Boleto2.cod, 1, 1)
TOTAL = 0
peso = 2
For i = 9 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
dv = 0
rdv1 = dv
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
Exit Sub
End If
If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2
div = c2 Mod 10
If div = 0 Then
rdv1 = div
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
Exit Sub
End If
subt = 10 - div
End If
dv = subt
rdv1 = dv
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
End Sub
Private Sub DigitaoCobranca()
Dim valor, div, subt, dv As Integer
Dim d(18) As Integer
Dim resultado(18) As Integer
Dim peso
valor = Mid(Boleto2.nnumero.Caption, 7, 7) & Boleto2.agencia.Caption & Boleto2.cod.Caption
TOTAL = 0
peso = 2
For i = 18 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
digitao = 0
Exit Sub
End If
If Int(subt) > 9 Then
digitao = 0
Exit Sub
End If
dv = subt
digitao = dv
End Sub
Private Sub dv2Real()
Dim valor, div, subt, dv
Dim d(10) As Integer
Dim resultado(10) As Integer
Dim peso
valor = Mid(Boleto2.cod, 2, 6) & digitao & Mid(Boleto2.nnumero, 1, 3)
TOTAL = 0
peso = 2
For i = 10 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
dv = 0
rdv2 = dv
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
Exit Sub
End If
If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2
div = c2 Mod 10
If div = 0 Then
rdv2 = div
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
Exit Sub
End If
subt = 10 - div
End If
dv = subt
rdv2 = dv
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
End Sub
Private Sub dv3Real()
Dim valor, div, subt, dv
Dim d(10) As Integer
Dim resultado(10) As Integer
Dim peso
valor = Mid(Boleto2.nnumero, 4, 10)
TOTAL = 0
peso = 2
For i = 10 To 1 Step -1
d(i) = Mid(valor, i, 1)
If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If
If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If
TOTAL = TOTAL + resultado(i)
Next i
div = TOTAL Mod 10
subt = 10 - div
If subt = 0 Then
dv = 0
rdv3 = dv
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
Exit Sub
End If
If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2
div = c2 Mod 10
If div = 0 Then
rdv3 = div
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
Exit Sub
End If
subt = 10 - div
End If
dv = subt
rdv3 = dv
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
End Sub
Private Sub dvGReal()
Dim vlr, div, subt, dv
Dim d(43) As Integer
Dim resultado(43) As Integer
Dim peso
Dim totalG
vlr = [Ô]3569[Ô] & Fator(Boleto2.vencimento.Caption) & SequenciarValor(Boleto2.valor.Caption) & Boleto2.agencia.Caption & Boleto2.cod & digitao & Boleto2.nnumero.Caption
totalG = 0
peso = 2
For i = 43 To 1 Step -1
d(i) = Mid(vlr, i, 1)
resultado(i) = (d(i) * peso)
totalG = totalG + (0#) + resultado(i)
peso = peso + 1
If peso > 9 Then peso = 2
Next i
div = totalG Mod 11
subt = 11 - (0#) - div
If subt >= 11 Then
subt = 11 - subt
End If
If subt = 10 Or subt = 0 Or subt = 1 Then
rdvG = 1
[ô]MsgBox [Ô]DV GERAL2: [Ô] & rdvG
Exit Sub
End If
dv = subt
rdvG = dv
[ô]MsgBox [Ô]DV GERAL: [Ô] & rdvG
End Sub
Function FatorREAL(data As Date) As String
Dim sMsg As String
Dim Dinicial As Date
Dinicial = [Ô]23/07/2000[Ô]
sMsg = DateDiff([Ô]d[Ô], Dinicial, data)
FatorREAL = sMsg
End Function
Public Function SequenciarValor(valorSeq As String)
Dim a1, b1, c1, Tot, ver
ver = Len(valorSeq) - (0#) - 1
a1 = InStr(valorSeq, [Ô],[Ô])
b1 = Left(valorSeq, a1 - 1)
c1 = Mid(valorSeq, ver, 2)
Tot = b1 & c1
SequenciarValor = Format(Tot, [Ô]0000000000[Ô])
End Function
ESTOU TE MANDANDO O CODIGO DO MEU SISTEMA PARA VOCÊ ADAPTAR AO SEU.
Ate.......
Valeu Ricardo! muito obrigado
Tópico encerrado , respostas não são mais permitidas