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.

 

WeekdayName

Descrição

A função WeekdayName em VBA é usada para obter o nome do dia da semana a partir de um valor numérico que representa o dia da semana. Isso é útil para exibir datas de forma mais legível em suas macros.

Exemplos


    Sub Exemplo1()
        Dim diaSemana As String
        diaSemana = WeekdayName(2) ' Retorna "Segunda-feira"
        MsgBox diaSemana
    End Sub
    

    Sub Exemplo2()
        Dim diaSemana As String
        diaSemana = WeekdayName(4) ' Retorna "Quarta-feira"
        MsgBox diaSemana
    
    

    Sub Exemplo3()
        Dim diaSemana As String
        diaSemana = WeekdayName(7) ' Retorna "Sábado"
        MsgBox diaSemana
    
    

    Sub Exemplo4()
        Dim diaSemana As String
        diaSemana = WeekdayName(1, False, vbMonday) ' Retorna "Segunda-feira" (início da semana em segunda-feira)
        MsgBox diaSemana
    
    

    Sub Exemplo5()
        Dim diaSemana As String
        diaSemana = WeekdayName(3, True, vbSunday) ' Retorna "Tue" (usando abreviação e início da semana em domingo)
        MsgBox diaSemana
    
    

Descrição Detalhada:

A função WeekdayName em VBA é uma ferramenta útil para obter o nome do dia da semana a partir de um valor numérico que representa o dia da semana. Isso é valioso para exibir datas de forma mais legível em suas macros, tornando a apresentação das informações mais amigável aos usuários. Os exemplos apresentados demonstram como usar a função WeekdayName para obter nomes de dias da semana, incluindo opções para abreviar nomes e especificar o início da semana em dias diferentes, como segunda-feira ou domingo. Compreender e aplicar a função WeekdayName é fundamental para aprimorar a apresentação de datas em suas automações e facilitar a compreensão dos dados por parte dos usuários.

 

Weekday – Dia da semana

Descrição

A função Weekday em VBA é usada para obter o dia da semana de uma data. Ela retorna um valor numérico que representa o dia da semana, sendo útil para análise de datas em suas macros.
Exemplos


    Sub Exemplo1()
        Dim data As Date
        data = DateSerial(2023, 10, 27)
        MsgBox Weekday(data) ' Retorna 6 (Sexta-feira)
    End Sub
    

    Sub Exemplo2()
        Dim data As Date
        data = DateSerial(2023, 11, 15)
        MsgBox Weekday(data) ' Retorna 4 (Quarta-feira)
    
    

    Sub Exemplo3()
        Dim data As Date
        data = DateSerial(2023, 12, 25)
        MsgBox Weekday(data) ' Retorna 2 (Domingo)
    
    

    Sub Exemplo4()
        Dim data As Date
        data = DateSerial(2023, 9, 1)
        MsgBox Weekday(data, vbMonday) ' Retorna 5 (Segunda-feira)
    
    

    Sub Exemplo5()
        Dim data As Date
        data = DateSerial(2023, 8, 10)
        MsgBox Weekday(data, vbSunday) ' Retorna 5 (Quinta-feira)
    
    

Descrição Detalhada:

A função Weekday em VBA é uma ferramenta útil para obter o dia da semana de uma data, retornando um valor numérico que representa o dia da semana. Isso é valioso para análise e manipulação de datas em suas macros, permitindo que você tome decisões com base no dia da semana de uma data específica. Os exemplos apresentados demonstram como usar a função Weekday para obter o dia da semana de várias datas e como especificar o dia de início da semana, como segunda-feira ou domingo. Compreender e aplicar a função Weekday é fundamental para trabalhar com datas de forma eficaz em suas automações.

VarType

Descrição

A função VarType em VBA é usada para determinar o tipo de dado de uma variável. Ela é útil para verificar o tipo de dado antes de realizar operações específicas.
Exemplos


    Sub Exemplo1()
        Dim numero As Integer
        MsgBox VarType(numero) ' Retorna 2 (representando Integer)
    End Sub
    

    Sub Exemplo2()
        Dim texto As String
        MsgBox VarType(texto) ' Retorna 8 (representando String)
    
    

    Sub Exemplo3()
        Dim valor As Double
        MsgBox VarType(valor) ' Retorna 5 (representando Double)
    
    

    Sub Exemplo4()
        Dim dataAtual As Date
        MsgBox VarType(dataAtual) ' Retorna 7 (representando Date)
    
    

    Sub Exemplo5()
        Dim planilha As Worksheet
        MsgBox VarType(planilha) ' Retorna 9 (representando Object - para objetos)
    
    

Descrição Detalhada:

A função VarType em VBA é uma ferramenta valiosa para determinar o tipo de dado de uma variável antes de realizar operações específicas. Isso ajuda a evitar erros de tipo de dado e permite que você adapte o código com base no tipo de dado que está manipulando. Os exemplos apresentados demonstram como usar a função VarType para identificar tipos de dados comuns, como Integer, String, Double, Date e objetos. Compreender e aplicar a função VarType é essencial para escrever código VBA mais robusto e flexível, tornando suas automações mais confiáveis e eficientes.

UCase

Descrição

A função UCase em VBA é usada para converter texto em maiúsculas. Ela é útil para padronizar a formatação do texto em suas macros.

Exemplos


    Sub Exemplo1()
        Dim texto As String
        texto = "Texto em maiúsculas"
        MsgBox UCase(texto) ' Retorna "TEXTO EM MAIÚSCULAS"
    End Sub
    

    Sub Exemplo2()
        Dim nome As String
        nome = "Maria"
        MsgBox UCase(nome) ' Retorna "MARIA"
    
    

    Sub Exemplo3()
        Dim frase As String
        frase = "Este é um exemplo de conversão."
        MsgBox UCase(frase) ' Retorna "ESTE É UM EXEMPLO DE CONVERSÃO."
    
    

    Sub Exemplo4()
        Dim texto2 As String
        texto2 = "TEXTO EM MINÚSCULAS"
        MsgBox UCase(texto2) ' Retorna "TEXTO EM MINÚSCULAS" (não afeta texto já em maiúsculas)
    
    

    Sub Exemplo5()
        Dim palavra As String
        palavra = "InVeRtIdO"
        MsgBox UCase(palavra) ' Retorna "INVERTIDO"
    
    

Descrição Detalhada:

A função UCase em VBA é uma ferramenta útil para converter texto em maiúsculas, tornando-o útil para padronizar a formatação do texto em suas macros. Ela permite que você converta rapidamente strings para letras maiúsculas, independentemente da formatação original do texto. Os exemplos apresentados demonstram como aplicar a função UCase em várias situações, incluindo conversão de frases, nomes e palavras. Além disso, a função não afeta strings que já estão em maiúsculas, tornando-a flexível para uso em diferentes cenários. Compreender e aplicar a função UCase é útil para melhorar a consistência e a legibilidade do texto em suas automações.

 

UBound

Descrição

A função UBound em VBA é usada para obter o limite superior de uma dimensão de um array. Ela é útil para determinar o tamanho de um array e percorrer seus elementos.
Exemplos


    Sub Exemplo1()
        Dim arr(1 To 5) As Integer
        MsgBox UBound(arr) ' Retorna 5
    End Sub
    

    Sub Exemplo2()
        Dim nomes(3) As String
        MsgBox UBound(nomes) ' Retorna 3
    End Sub
    

    Sub Exemplo3()
        Dim matriz(1 To 2, 1 To 3) As Double
        MsgBox UBound(matriz, 1) ' Retorna 2
    End Sub
    

    Sub Exemplo4()
        Dim alunos() As String
        ReDim alunos(1 To 10)
        MsgBox UBound(alunos) ' Retorna 10
    End Sub
    

    Sub Exemplo5()
        Dim matriz(1 To 3, 1 To 4, 1 To 5) As Single
        MsgBox UBound(matriz, 3) ' Retorna 5
    End Sub
    

Descrição Detalhada:

A função UBound em VBA é uma ferramenta essencial para obter o limite superior de uma dimensão de um array. Isso é útil para determinar o tamanho de um array e percorrer seus elementos de forma eficaz. Os exemplos apresentados demonstram como aplicar a função UBound em diferentes tipos de arrays, incluindo arrays unidimensionais e multidimensionais. Você pode usá-la para dimensionar arrays dinamicamente, avaliar o tamanho de uma coleção de dados e muito mais. Compreender e aplicar a função UBound é fundamental para trabalhar com arrays de maneira eficiente e eficaz em suas macros VBA.