Gerar IE – SP

Função Geradora de Inscrição Estadual (IE) em VBA

Gerar números válidos de Inscrição Estadual (IE) de forma aleatória é uma tarefa complexa, pois cada estado do Brasil tem sua própria regra de formação e validação, incluindo dígitos verificadores específicos. Devido a essa complexidade, seria impraticável fornecer um código único que cubra todos os estados. No entanto, posso fornecer um exemplo básico para um estado específico. Vou escolher São Paulo como exemplo, mas tenha em mente que esta função não será aplicável para outros estados e a validação real de uma IE é mais complexa e deve ser feita utilizando as regras específicas de cada estado. Aqui está um exemplo de função em VBA para gerar Inscrição Estadual fictícia para o estado de São Paulo:

Function GerarIESaoPaulo() As String
    Dim BaseIE As String
    Dim Digito1 As Integer
    Dim Digito2 As Integer
    Dim i As Integer
    Dim soma As Integer

    Randomize

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

    ' Cálculo do primeiro dígito verificador
    soma = 0
    For i = 1 To 8
        If i = 1 Or i = 7 Then
            soma = soma + Val(Mid(BaseIE, i, 1)) * 1
        Else
            soma = soma + Val(Mid(BaseIE, i, 1)) * i
        End If
    Next i
    Digito1 = soma Mod 10

    ' Cálculo do segundo dígito verificador
    soma = 0
    For i = 1 To 8
        soma = soma + Val(Mid(BaseIE, i, 1)) * (i + 1)
    Next i
    soma = soma + Digito1 * 2
    Digito2 = soma Mod 10

    ' Combinar os números e os dígitos verificadores
    GerarIESaoPaulo = BaseIE & "-" & Digito1 & Digito2
End Function

Sub ImprimirInscricoesEstaduais()
    Dim i As Integer
    Dim IE As String

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

    ' Gerar e imprimir 10 Inscrições Estaduais
    For i = 1 To 10
        IE = GerarIESaoPaulo()
        Cells(i, 1).Value = IE
    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

Gerar CEPs

Função Geradora de CEPs em VBA

Para criar uma função em VBA que gera números válidos de CEP (Código de Endereçamento Postal do Brasil) e os imprime a partir da célula A1 com tamanho de fonte 14 e no formato texto, podemos seguir uma abordagem mais simples, já que o CEP é basicamente um conjunto de 8 dígitos, geralmente formatado como XXXXX-XXX. Não há um dígito verificador ou um cálculo complexo envolvido na geração de um CEP.


Function GerarCEPAleatorio() As String
    Dim Parte1 As Long
    Dim Parte2 As Long

    Randomize

    ' Gerar as duas partes do CEP
    Parte1 = Int((99999 - 10000 + 1) * Rnd + 10000) ' Gera um número entre 10000 e 99999
    Parte2 = Int((999 - 100 + 1) * Rnd + 100)      ' Gera um número entre 100 e 999

    ' Combinar as partes para formar o CEP
    GerarCEPAleatorio = Format(Parte1, "00000") & "-" & Format(Parte2, "000")
End Function

Sub ImprimirCEPs()
    Dim i As Integer
    Dim CEP As String

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

    ' Gerar e imprimir 10 CEPs
    For i = 1 To 10
        CEP = GerarCEPAleatorio()
        Cells(i, 1).Value = CEP
    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

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

Gerar Mega Sena

Função Geradora de Mega Sena em VBA

Para criar uma função em VBA que gere números aleatórios da Mega Sena e os imprima a partir da célula A1 com tamanho de fonte 14 e no formato texto, você pode utilizar o seguinte código. A Mega Sena consiste na escolha de 6 números únicos de 1 a 60, então este código irá gerar tais combinações.

Function GerarNumerosMegaSena() As String
    Dim Numeros(1 To 6) As Integer
    Dim i As Integer, j As Integer
    Dim Num As Integer
    Dim Resultado As String

    Randomize

    ' Gerar 6 números únicos
    For i = 1 To 6
        Do
            Num = Int((60 * Rnd) + 1)
            ' Verificar se o número já foi escolhido
            For j = 1 To i - 1
                If Numeros(j) = Num Then
                    Num = 0
                    Exit For
                End If
            Next j
        Loop While Num = 0
        Numeros(i) = Num
    Next i

    ' Ordenar os números
    Call BubbleSort(Numeros)

    ' Converter para string
    For i = 1 To 6
        Resultado = Resultado & Format(Numeros(i), "00") & " "
    Next i

    GerarNumerosMegaSena = Trim(Resultado)
End Function

' Função auxiliar para ordenar os números
Sub BubbleSort(ByRef Arr() As Integer)
    Dim i As Integer, j As Integer
    Dim Temp As Integer

    For i = UBound(Arr) To 2 Step -1
        For j = 1 To i - 1
            If Arr(j) > Arr(j + 1) Then
                Temp = Arr(j)
                Arr(j) = Arr(j + 1)
                Arr(j + 1) = Temp
            End If
        Next j
    Next i
End Sub

Sub ImprimirNumerosMegaSena()
    Dim i As Integer
    Dim Numeros As String

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

    ' Gerar e imprimir 10 conjuntos de números
    For i = 1 To 10
        Numeros = GerarNumerosMegaSena()
        Cells(i, 1).Value = Numeros
    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