Estou publicando aqui, uma função, que estou usando para montar o programa de envio da NF-e e, a função que calcula o digito verificador da chave de acesso da NF-e (para saber mais sobre Digito Verificador acesse http://pt.wikipedia.org/wiki/D%C3%ADgito_verificador). Um dos itens principais para desenvolver o XML da NF-e é a montagem da chave de acesso. Para isso é necessário, além de compor a chave, calcular o digito verificador “DV” da mesma. Esse código é valido tanto para VB6 como para VBA (é tem muitas pessoas que desenvolvem para NFe com VBA, eu estou dando consultoria para um sistema desses ) o qual pode ser realizado usando-se a função abaixo:
'---------------------------------------------------------------------------------------
' Procedure : calculaDV
' Data : 08/02/2010
' Programador: Rodrigo de Oliveira
' Contato : thabis.wired@hotmail.com
' Descrio : Calcula o Digito Verificador da Chave de Acesso da NFe usando o modulo 11
'---------------------------------------------------------------------------------------
Private Function calculaDV(ByVal Chave As String) As Integer
Dim i As Integer
Dim c As Byte
Dim Key As Integer
On Error GoTo calculaDV_Error
c = 2
'faz um loop por cada nmero o mutiplicando-o pelos valores de C
For i = 1 To Len(Chave)
'vericica se o valor de c for maior que nove passa o valor para 2
If c > 9 Then
c = 2
End If
'soma os valores mutiplicados
Key = Key + (CInt(Mid(Chave, i, 1)) * c)
c = c + 1
Next
'obtem o Digito Verificador
calculaDV = 11 - (Key Mod 11)
Exit Function
calculaDV_Error:
MsgBox("Erro: " & Err.Number & vbNewLine & "Procedure calculaDV localizado em ChaveDV, na linha " & Erl, vbCritical, Err.Source)
End Function
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 10/02/2010 5:04 am