Gerar RGs

Função Geradora de RGs em VBA

Criar uma função em VBA para gerar números válidos de RG (Registro Geral) é um pouco mais complexo do que simplesmente gerar números aleatórios, pois o RG possui um dígito verificador que depende dos outros números do documento. Além disso, o formato do RG pode variar dependendo do estado brasileiro. Aqui, vou fornecer um exemplo que gera um RG no formato mais comum, sem considerar as variações estaduais.

Function GerarRGAleatorio() As String
    Dim rg As String
    Dim soma As Integer
    Dim i As Integer
    Dim resto As Integer
    Dim digito As String

    Randomize

    ' Gerar os primeiros 8 dígitos do RG de forma aleatória
    For i = 1 To 8
        rg = rg & Int(Rnd * 10)
    Next i

    ' Calculando o dígito verificador
    For i = 1 To 8
        soma = soma + Val(Mid(rg, i, 1)) * (9 - (i - 1))
    Next i

    resto = soma Mod 11
    If resto = 10 Then
        digito = "X"
    Else
        digito = CStr(resto)
    End If

    ' Combinar os números e o dígito verificador
    GerarRGAleatorio = rg & "-" & digito
End Function

Sub ImprimirRGs()
    Dim i As Integer
    Dim rg As String

    ' Configurar a coluna A
    With Range("A:A")
        .NumberFormat = "@"
        .Font.Size = 14
    End With

    ' Gerar e imprimir 10 RGs
    For i = 1 To 10
        rg = GerarRGAleatorio()
        Cells(i, 1).Value = rg
    Next i
End Sub

Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail
solicitando para o endereço
marmitanao@gmail.com