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

Gerar Nomes

Função Geradora de Nomes em VBA

Para criar uma função em VBA que gera nomes e dois sobrenomes aleatórios e imprime a partir da célula A1 com tamanho de fonte 14 e no formato texto, você pode utilizar o seguinte código. Este código vai gerar nomes e sobrenomes de uma lista pré-definida, então você pode ajustar as listas de acordo com suas preferências.

Function GerarNomeAleatorio() As String
    Dim Nomes As Variant
    Dim Sobrenomes As Variant
    Dim NomeAleatorio As String
    Dim Sobrenome1 As String
    Dim Sobrenome2 As String

    ' Listas de nomes e sobrenomes
    Nomes = Array("Ana", "João", "Maria", "José", "Luís", "Paula", "Carlos", "Sofia")
    Sobrenomes = Array("Silva", "Santos", "Oliveira", "Pereira", "Souza", "Rodrigues", "Fernandes", "Gonçalves")

    Randomize

    ' Selecionar aleatoriamente um nome e dois sobrenomes
    NomeAleatorio = Nomes(Int((UBound(Nomes) + 1) * Rnd))
    Sobrenome1 = Sobrenomes(Int((UBound(Sobrenomes) + 1) * Rnd))
    Sobrenome2 = Sobrenomes(Int((UBound(Sobrenomes) + 1) * Rnd))

    ' Combinar para formar um nome completo
    GerarNomeAleatorio = NomeAleatorio & " " & Sobrenome1 & " " & Sobrenome2
End Function

Sub ImprimirNomes()
    Dim i As Integer
    Dim NomeCompleto As String

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

    ' Gerar e imprimir 10 nomes
    For i = 1 To 10
        NomeCompleto = GerarNomeAleatorio()
        Cells(i, 1).Value = NomeCompleto
    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 Senhas

Função Geradora de Senhas em VBA

Para criar uma função em VBA que gera senhas aleatórias e as imprime a partir da célula A1, você pode utilizar o seguinte código. Este código permite gerar senhas que incluem letras (maiúsculas e minúsculas), números e símbolos especiais. As senhas geradas serão impressas na coluna A, com tamanho de fonte 14 e no formato de texto.

Function GerarSenhaAleatoria(Tamanho As Integer) As String
    Dim Caracteres As String
    Dim i As Integer
    Dim Senha As String

    ' Definir os caracteres possíveis
    Caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*"

    Randomize

    ' Gerar a senha
    For i = 1 To Tamanho
        Senha = Senha & Mid$(Caracteres, Int((Len(Caracteres) * Rnd) + 1), 1)
    Next i

    GerarSenhaAleatoria = Senha
End Function

Sub ImprimirSenhas()
    Dim i As Integer
    Dim Senha As String

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

    ' Gerar e imprimir 10 senhas
    For i = 1 To 10
        Senha = GerarSenhaAleatoria(10) ' Gera uma senha de 10 caracteres
        Cells(i, 1).Value = Senha
    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 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

Gerar CNPJs

Função Geradora de CNPJs em VBA

Para formatar o CNPJ com pontos e a barra, você pode adicionar uma função de formatação ou simplesmente alterar a linha final da função GerarCNPJValido para incluir a formatação desejada. Lembre-se de que, embora a função gere um número de CNPJ que atenda aos requisitos de formatação e aos dígitos verificadores, não significa que ele corresponda a uma empresa real, e seu uso deve se restringir a testes e simulações.

Function GerarCNPJValido() As String
    Dim base(11) As Integer
    Dim digito1 As Integer
    Dim digito2 As Integer
    Dim i As Integer
    Dim soma As Integer
    Dim resto As Integer
    Dim tempCnpj As String

    ' Gera os 12 primeiros dígitos do CNPJ de forma aleatória
    Randomize
    For i = 0 To 11
        base(i) = Int(Rnd() * 10)
        tempCnpj = tempCnpj & base(i)
    Next i

    ' Cálculo do primeiro dígito verificador
    soma = 0
    For i = 0 To 11
        soma = soma + base(i) * IIf(i < 4, 5 - i, 13 - i)
    Next i
    resto = soma Mod 11
    digito1 = IIf(resto < 2, 0, 11 - resto)

    ' Adiciona o primeiro dígito ao CNPJ
    tempCnpj = tempCnpj & digito1

    ' Cálculo do segundo dígito verificador
    soma = 0
    For i = 0 To 12
        soma = soma + Val(Mid(tempCnpj, i + 1, 1)) * IIf(i < 5, 6 - i, 14 - i)
    Next i
    resto = soma Mod 11
    digito2 = IIf(resto < 2, 0, 11 - resto)

    ' Retorna o CNPJ formatado
    GerarCNPJValido = tempCnpj & digito2
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

Gerar CPFs

Função Geradora de CPFs em VBA

Você pode chamar essa função em qualquer parte do seu código VBA para obter um CPF válido aleatório. No entanto, tenha em mente que esses CPFs são gerados de forma aleatória e podem não ser únicos ou pertencer a pessoas reais. Além disso, para propósitos de testes, essa abordagem é aceitável, mas a utilização de CPFs gerados aleatoriamente para outros fins pode ser ilegal ou antiética.
Para usar essa função, simplesmente chame GerarCPFValido() em seu código VBA, e ela retornará uma string com um número de CPF válido.


Function GerarCPFValido() As String
    Dim cpf(8) As Integer
    Dim digito1 As Integer
    Dim digito2 As Integer
    Dim tempCpf As String
    Dim i As Integer
    Dim peso As Integer
    Dim soma As Integer

    ' Gera os 9 primeiros dígitos do CPF de forma aleatória
    Randomize
    For i = 0 To 8
        cpf(i) = Int(Rnd() * 10)
        tempCpf = tempCpf & cpf(i)
    Next i

    ' Cálculo do primeiro dígito verificador
    peso = 10
    soma = 0
    For i = 0 To 8
        soma = soma + cpf(i) * peso
        peso = peso - 1
    Next i
    digito1 = 11 - (soma Mod 11)
    If digito1 >= 10 Then digito1 = 0

    ' Cálculo do segundo dígito verificador
    peso = 11
    soma = 0
    For i = 0 To 8
        soma = soma + cpf(i) * peso
        peso = peso - 1
    Next i
    soma = soma + digito1 * 2
    digito2 = 11 - (soma Mod 11)
    If digito2 >= 10 Then digito2 = 0

    ' Retorna o CPF formatado
    GerarCPFValido = tempCpf & digito1 & digito2
End Function


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

Year

Descrição

A função Year em VBA é usada para extrair o ano de uma data. Ela retorna um valor numérico que representa o ano de uma data, o que é útil para análise e manipulação de datas em suas macros.

Exemplos


    Sub Exemplo1()
        Dim data As Date
        data = #10/29/2023#
        MsgBox Year(data) ' Retorna 2023
    End Sub
    

    Sub Exemplo2()
        Dim data As Date
        data = #5/15/2022#
        MsgBox Year(data) ' Retorna 2022
    
    

    Sub Exemplo3()
        Dim data As Date
        data = #12/31/2021#
        MsgBox Year(data) ' Retorna 2021
    
    

    Sub Exemplo4()
        Dim data As Date
        data = Now
        MsgBox Year(data) ' Retorna o ano atual
    
    

    Sub Exemplo5()
        Dim data As Date
        data = #3/8/2030#
        MsgBox Year(data) ' Retorna 2030
    
    

Descrição Detalhada:

A função Year em VBA é uma ferramenta fundamental para extrair o ano de uma data. Ela retorna um valor numérico que representa o ano de uma data específica, permitindo análises e manipulações de datas em suas macros. Os exemplos apresentados demonstram como usar a função Year para obter o ano de várias datas, incluindo datas fixas, a data atual e datas futuras. Essa função é particularmente útil ao trabalhar com cálculos relacionados a datas ou para exibir o ano de forma isolada. Compreender e aplicar a função Year é essencial para extrair informações específicas de datas em suas automações.