
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