VBA Excel | Automatize o Controle de Ciclos no Excel com Função VBA Personalizada

VBA Excel | Automatize o Controle de Ciclos no Excel com Função VBA Personalizada

Automatize o Controle de Ciclos no Excel com Função VBA Personalizada


No mundo das planilhas eletrônicas, a automatização de processos repetitivos pode significar uma grande economia de tempo e esforço. Se você trabalha com dados de ausências ou qualquer outro tipo de dados cíclicos, a função VBA nCycle pode ser a solução ideal para otimizar suas tarefas no Excel. Esta função verifica se um determinado número de horas está dentro do ciclo correto, facilitando a análise e o controle dos dados.


A Utilidade da Função nCycle


A função nCycle foi criada para resolver um problema específico: verificar se uma data considerada está dentro do mesmo ciclo de uma data de criação, com base em intervalos de datas predefinidos. Esse tipo de verificação é crucial em várias aplicações, como controle de presença, ciclos de produção, períodos de avaliação, entre outros.


Como a Função Funciona


A função nCycle trabalha em conjunto com a função auxiliar GetCycle para determinar a qual ciclo cada data pertence. Aqui está uma visão detalhada de como cada parte do código funciona:


1. Inicialização das Variáveis: Duas variáveis (`nCycle1` e `nCycle2`) são usadas para armazenar os ciclos das datas fornecidas.

2. Determinação dos Ciclos: A função GetCycle é chamada para identificar o ciclo correspondente a cada data.

3. Comparação dos Ciclos: A função compara os dois ciclos e retorna `True` se eles forem iguais, indicando que as datas pertencem ao mesmo ciclo.


Implementação da Função


Abaixo está o código VBA da função nCycle, juntamente com a função auxiliar GetCycle:


Function nCycle(dtCreation As Date, dtConsider As Date, nVal As Variant) As Boolean

    ' Application: Dados de Ausências.

    '      Action: Checa se o número de horas considerado está dentro do respectivo Ciclo.

    '      Author: André Bernardes

    '     Contact: andreluizbernardess@gmail.com

    '        Date: 15.01.23 - 16:00:49

    

    ' Variáveis para armazenar os ciclos

    Dim nCycle1 As Integer

    Dim nCycle2 As Integer

    

    ' Determina os ciclos das datas fornecidas

    nCycle1 = GetCycle(dtCreation)

    nCycle2 = GetCycle(dtConsider)

    

    ' Compara ambos os ciclos, retornando True quando o valor a ser considerado estiver dentro do mesmo ciclo

    nCycle = (nCycle1 = nCycle2)

    

End Function


' Função auxiliar para determinar o ciclo com base na data

Private Function GetCycle(dtDate As Date) As Integer

    ' Definição de arrays com as datas de início e fim dos ciclos

    Dim cycleStarts As Variant

    Dim cycleEnds As Variant

    Dim i As Integer

    

    ' Inicializa arrays com as datas de início e fim dos ciclos

    cycleStarts = Array(#1/15#, #3/4#, #4/8#, #5/13#, #6/24#, #7/29#, #9/8#, #9/14#, #11/18#)

    cycleEnds = Array(#3/1#, #4/5#, #5/10#, #6/21#, #7/26#, #8/30#, #10/9#, #11/14#, #12/20#)

    

    ' Loop através dos ciclos para determinar em qual ciclo a data fornecida se enquadra

    For i = LBound(cycleStarts) To UBound(cycleStarts)

        If dtDate >= cycleStarts(i) And dtDate <= cycleEnds(i) Then

            GetCycle = i + 1 ' Retorna o ciclo correspondente (i+1 porque os índices de array começam em 0)

            Exit Function

        End If

    Next i

    

    ' Se a data não corresponder a nenhum ciclo, retorna 0

    GetCycle = 0

End Function


Como Utilizar a Função no Excel


1. Acesso ao Editor VBA: Pressione `Alt + F11` para abrir o Editor VBA no Excel.

2. Inserção de Novo Módulo: Vá para `Inserir > Módulo` e cole o código acima.

3. Fechamento do Editor VBA: Feche o editor e volte para sua planilha.

4. Utilização da Função: Use a função nCycle diretamente em suas fórmulas. Por exemplo, =nCycle(A1, B1, C1) verificará se as datas nas células A1 e B1 pertencem ao mesmo ciclo.


Vantagens da Função nCycle


- Precisão: A função garante a verificação exata dos ciclos, minimizando erros humanos.

- Eficiência: Automatiza um processo que, de outra forma, seria manual e demorado.

- Flexibilidade: Pode ser adaptada para diversos tipos de ciclos e intervalos, conforme necessário.

- Facilidade de Manutenção: A separação da lógica de determinação de ciclos em uma função auxiliar torna o código mais modular e fácil de atualizar.


A função nCycle é uma ferramenta poderosa para quem precisa controlar e analisar dados cíclicos no Excel. Ao automatizar a verificação de ciclos, ela não só melhora a precisão, mas também economiza tempo valioso. Seja para controle de presença, ciclos de produção ou qualquer outra aplicação cíclica, a nCycle pode transformar sua forma de trabalhar com planilhas eletrônicas.


Experimente a função nCycle e veja como ela pode facilitar sua rotina no Excel, tornando seus processos mais eficientes e confiáveis.


Exemplos de Aplicabilidade da Função nCycle


Para entender melhor como a função nCycle pode ser utilizada, aqui estão três exemplos práticos que demonstram sua aplicabilidade em diferentes contextos:


1. Controle de Presença em Treinamentos Corporativos


Imagine uma empresa que realiza treinamentos em ciclos mensais para seus funcionários. Cada ciclo de treinamento tem uma duração específica, e é crucial que o departamento de Recursos Humanos (RH) controle a presença dos funcionários dentro desses ciclos. Utilizando a função nCycle, o RH pode verificar se a data de criação do registro de presença e a data considerada para avaliação pertencem ao mesmo ciclo, garantindo que todos os dados de presença sejam contabilizados corretamente.



' Verifica se o registro de presença e a data de avaliação pertencem ao mesmo ciclo

Dim dtRegistro As Date

Dim dtAvaliacao As Date

Dim horas As Variant


dtRegistro = #1/20/2024#

dtAvaliacao = #2/15/2024#

horas = 8


If nCycle(dtRegistro, dtAvaliacao, horas) Then

    MsgBox "O registro de presença está dentro do mesmo ciclo."

Else

    MsgBox "O registro de presença não está dentro do mesmo ciclo."

End If



2. Ciclos de Produção em Fábricas


Em uma fábrica, a produção de determinados produtos pode ser organizada em ciclos de tempo específicos. Por exemplo, um ciclo de produção pode durar várias semanas, e é importante monitorar se todas as atividades relacionadas à produção de um lote específico estão ocorrendo dentro do mesmo ciclo. A função nCycle pode ser utilizada para garantir que todas as operações, desde a criação do lote até a inspeção final, estejam sincronizadas dentro do mesmo ciclo de produção.



' Verifica se a data de criação do lote e a data de inspeção final pertencem ao mesmo ciclo de produção

Dim dtCriacaoLote As Date

Dim dtInspecaoFinal As Date

Dim quantidadeProduzida As Variant


dtCriacaoLote = #5/10/2024#

dtInspecaoFinal = #6/5/2024#

quantidadeProduzida = 1000


If nCycle(dtCriacaoLote, dtInspecaoFinal, quantidadeProduzida) Then

    MsgBox "A produção e a inspeção final estão dentro do mesmo ciclo."

Else

    MsgBox "A produção e a inspeção final não estão dentro do mesmo ciclo."

End If



3. Períodos de Avaliação de Desempenho


Empresas que realizam avaliações de desempenho trimestrais precisam garantir que os dados coletados para avaliação de um funcionário correspondam ao mesmo período de avaliação. Utilizando a função nCycle, o departamento de Recursos Humanos pode verificar se as datas das atividades avaliadas e a data de fechamento do período de avaliação estão dentro do mesmo ciclo, assegurando uma análise precisa e coerente do desempenho dos funcionários.



' Verifica se a data da atividade e a data de fechamento do período de avaliação pertencem ao mesmo ciclo de avaliação

Dim dtAtividade As Date

Dim dtFechamentoAvaliacao As Date

Dim desempenho As Variant


dtAtividade = #9/15/2024#

dtFechamentoAvaliacao = #10/1/2024#

desempenho = 85


If nCycle(dtAtividade, dtFechamentoAvaliacao, desempenho) Then

    MsgBox "A atividade e o fechamento da avaliação estão dentro do mesmo ciclo."

Else

    MsgBox "A atividade e o fechamento da avaliação não estão dentro do mesmo ciclo."

End If


A função nCycle é extremamente versátil e pode ser aplicada em diversos contextos empresariais. Desde o controle de presença em treinamentos, passando pela organização de ciclos de produção em fábricas, até a gestão de períodos de avaliação de desempenho, essa função oferece uma solução eficaz para garantir que todas as atividades estejam corretamente alinhadas dentro dos mesmos ciclos. Ao automatizar a verificação de ciclos, a nCycle não só melhora a precisão dos dados, mas também otimiza o tempo e os recursos, tornando os processos empresariais mais eficientes e confiáveis.


  Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com


 Série Donut Project 
DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Clique nas capas abaixo e compre também: 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)


Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel (Série Top 10 Funções - Microsoft Excel)


eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes

eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

Nenhum comentário:

Postar um comentário

diHITT - Notícias