
Para usar essa função no VBA, você simplesmente chama
GerarCNH()
e ela retornará um número de CNH fictício com dígitos verificadores gerados de acordo com o algoritmo. Lembre-se de que os números gerados por esta função são apenas para fins de teste e simulação e não representam CNHs autênticas.
Function GerarCNH() As String
Dim baseCnh As String
Dim i As Integer
Dim soma As Integer
Dim peso As Integer
Dim resto As Integer
Dim digito1 As Integer
Dim digito2 As Integer
Dim cnhCompleta As String
' Gera os 9 primeiros dígitos da CNH de forma aleatória
Randomize
For i = 1 To 9
baseCnh = baseCnh & Int(Rnd() * 10)
Next i
' Calcula o primeiro dígito verificador
soma = 0
peso = 9
For i = 1 To 9
soma = soma + CInt(Mid(baseCnh, i, 1)) * peso
peso = peso - 1
Next i
resto = soma Mod 11
digito1 = IIf(resto = 10, 0, resto)
' Adiciona o primeiro dígito ao final da base da CNH
baseCnh = baseCnh & digito1
' Calcula o segundo dígito verificador
soma = 0
peso = 1
For i = 1 To 9
soma = soma + CInt(Mid(baseCnh, i, 1)) * peso
peso = peso + 1
Next i
resto = soma Mod 11
digito2 = IIf(resto = 10, 0, resto)
' Completa a CNH com os dois dígitos verificadores
cnhCompleta = baseCnh & digito2
' Retorna a CNH completa
GerarCNH = cnhCompleta
End Function
Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail
solicitando para o endereço
marmitanao@gmail.com