Gerar CNHs

Função Geradora de CNHs em VBA

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