MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Alterar horário módulo

    avatar
    ictsp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 166
    Registrado : 02/09/2016

    [Resolvido]Alterar horário módulo Empty [Resolvido]Alterar horário módulo

    Mensagem  ictsp em 5/2/2020, 11:29

    Bom dia!
    Prezados colegas, estou utilizando um código criado pelo colega Alexandre Neves aqui do fórum. Funciona perfeitamente, porém gostaria de acrescentar o intervalo do café da tarde.
    Não tenho muito conhecimento e estou tentanto fazer na raça.
    Seria possivel algum dos colegas me dar um auxílio?
    Acrescentei um comentario nas linhas que eu já alterei. (" 'café tarde")
    INI_Cafetarde
    FIM_Cafetarde
    Desde já agradeço ajuda!!
    Código:
    Function TempoGasto(argDataInicial As Date, argHoraInicial As Date, argDataFinal As Date, argHoraFinal As Date) As Variant
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '   código criado por Alexandre Neves, do Fórum MaximoAccess   '
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim dtData As Date
        Dim inicioExpediente As Date, fimExpediente As Date
        Dim INI_Cafemanha As Date, FIM_Cafemanha As Date
        Dim inicioAlmoco As Date, fimAlmoco As Date
        Dim INI_Cafetarde As Date, FIM_Cafetarde As Date 'café da tarde
        Dim TempoPrimDia As Long, TempoUltDia As Long, totalExpediente As Long
        Dim numeroDiasCompletos As Integer
        
        If argDataInicial = argDataFinal And argHoraFinal < argHoraInicial Then
            MsgBox "O fim não pode ser antes do início."
            Exit Function
        End If
        'Configuração dos dados iniciais. Para personalizar
        'basta alterar os valores a serem utilizados.
        inicioExpediente = #7:00:00 AM#
        INI_Cafemanha = #9:00:00 AM#
        FIM_Cafemanha = #9:15:00 AM#
        inicioAlmoco = #11:30:00 AM#
        fimAlmoco = #12:30:00 PM#
        INI_Cafetarde = #3:00:00 PM# 'tentativa acrescentar
        FIM_Cafetarde = #3:15:00 PM# 'tentativa acrescentar
        fimExpediente = #5:00:00 PM#
        
        For dtData = argDataInicial To argDataFinal
            If dtData = argDataInicial Then
                If argDataInicial = argDataFinal Then
                    Select Case argHoraInicial
                    Case Is < inicioExpediente
                        Select Case argHoraFinal
                        Case Is < inicioExpediente
                        Case Is < INI_Cafemanha
                            TempoPrimDia = DateDiff("s", inicioExpediente, argHoraFinal)
                        Case Is < FIM_Cafemanha
                            TempoPrimDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            Case Is < INI_Cafetarde '[color=#ff3300]café tarde[/color]
                            TempoPrimDia = DateDiff("s", fimExpediente, argHoraFinal)
                        Case Is < FIM_Cafetarde 'café tarde
                            TempoPrimDia = DateDiff("s", fimExpediente, INI_Cafetarde)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            TempoPrimDia = DateDiff("s", fimExpediente, INI_Cafetarde) 'café tarde
                             TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafetarde, argHoraFinal) 'café tarde
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal) 'desativado
                        Case Else
                            TempoPrimDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                        End Select
                    Case Is < INI_Cafemanha
                        Select Case argHoraFinal
                        Case Is < INI_Cafemanha
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Is < FIM_Cafemanha
                            TempoPrimDia = DateDiff("s", argHoraInicial, INI_Cafemanha)
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, INI_Cafemanha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                        End Select
                    Case Is < FIM_Cafemanha
                        Select Case argHoraFinal
                        Case Is < FIM_Cafemanha
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", FIM_Cafemanha, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                        End Select
                    Case Is < inicioAlmoco
                        Select Case argHoraFinal
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                        End Select
                    Case Is < fimAlmoco
                        Select Case argHoraFinal
                        Case Is < fimAlmoco
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", fimAlmoco, fimExpediente)
                        End Select
                    Case Is < fimExpediente
                        Select Case argHoraFinal
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, fimExpediente)
                        End Select
                    End Select
                Else
                    Select Case argHoraInicial
                    Case Is < inicioExpediente
                        TempoPrimDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                    Case Is < INI_Cafemanha
                        TempoPrimDia = DateDiff("s", argHoraInicial, INI_Cafemanha)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                    Case Is < FIM_Cafemanha
                        TempoPrimDia = DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                    Case Is < inicioAlmoco
                        TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                    Case Is < fimAlmoco
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, fimExpediente)
                    Case Is < fimExpediente
                        TempoPrimDia = DateDiff("s", argHoraInicial, fimExpediente)
                    End Select
                End If
            ElseIf dtData = argDataFinal Then
                Select Case argHoraFinal
                Case Is < inicioExpediente
                Case Is < INI_Cafemanha
                    TempoUltDia = DateDiff("s", inicioExpediente, argHoraFinal)
                Case Is < FIM_Cafemanha
                    TempoUltDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                Case Is < inicioAlmoco
                    TempoUltDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                    TempoUltDia = TempoUltDia + DateDiff("s", FIM_Cafemanha, argHoraFinal)
                Case Is < fimAlmoco
                    TempoUltDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                    TempoUltDia = TempoUltDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                Case Is < fimExpediente
                    TempoUltDia = DateDiff("s", inicioExpediente, INI_Cafemanha)
                    TempoUltDia = TempoUltDia + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimAlmoco, argHoraFinal)
                End Select
            Else
                numeroDiasCompletos = numeroDiasCompletos + 1
            End If
        Next
        
        totalExpediente = totalExpediente + DateDiff("s", inicioExpediente, INI_Cafemanha)
        totalExpediente = totalExpediente + DateDiff("s", FIM_Cafemanha, inicioAlmoco)
        totalExpediente = totalExpediente + DateDiff("s", fimAlmoco, fimExpediente)
        
        TempoGasto = TempoPrimDia + numeroDiasCompletos * totalExpediente + TempoUltDia
        TempoGasto = TempoGasto \ 3600 & "h" & TempoGasto \ 60 Mod 60 & "m" & TempoGasto Mod 60 & "s"
        If Left(TempoGasto, 2) = "0h" Then TempoGasto = Mid(TempoGasto, 3)
        If Right(TempoGasto, 3) = "m0s" Then TempoGasto = Mid(TempoGasto, 1, Len(TempoGasto) - 2)
        If TempoGasto Like "*h0m*" Then TempoGasto = Mid(TempoGasto, 1, InStr(1, TempoGasto, "h")) & Mid(TempoGasto, InStr(TempoGasto, "m") + 1)
    End Function

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7781
    Registrado : 05/11/2009

    [Resolvido]Alterar horário módulo Empty Re: [Resolvido]Alterar horário módulo

    Mensagem  Alexandre Neves em 5/2/2020, 17:50

    Boa tarde
    Código:

    Function TempoGasto(argDataInicial As Date, argHoraInicial As Date, argDataFinal As Date, argHoraFinal As Date) As Variant
        '--------------------------------------------------------------'
        '   código criado por Alexandre Neves, do Fórum MaximoAccess   '
        '     utilize o código livremente mas mantenha os créditos     '
        '--------------------------------------------------------------'
          Dim dtData As Date
        Dim inicioExpediente As Date, fimExpediente As Date
        Dim inicioCafeManha As Date, fimCafeManha As Date
        Dim inicioCafeTarde As Date, fimCafeTarde As Date
        Dim inicioAlmoco As Date, fimAlmoco As Date
        Dim TempoPrimDia As Long, TempoUltDia As Long, totalExpediente As Long
        Dim numeroDiasCompletos As Integer
        
        If argDataInicial = argDataFinal And argHoraFinal < argHoraInicial Then
            MsgBox "O fim não pode ser antes do início."
            Exit Function
        End If
        'Configuração dos dados iniciais. Para personalizar
        'basta alterar os valores a serem utilizados.
        inicioExpediente = #7:00:00 AM#
        inicioCafeManha = #9:00:00 AM#
        fimCafeManha = #9:15:00 AM#
        inicioAlmoco = #11:30:00 AM#
        fimAlmoco = #12:30:00 PM#
        inicioCafeTarde = #3:00:00 PM#
        fimCafeTarde = #3:15:00 PM#
        fimExpediente = #5:00:00 PM#
        
        For dtData = argDataInicial To argDataFinal
            If dtData = argDataInicial Then
                If argDataInicial = argDataFinal Then
                    Select Case argHoraInicial
                    Case Is < inicioExpediente
                        Select Case argHoraFinal
                        Case Is < inicioExpediente
                        Case Is < inicioCafeManha
                            TempoPrimDia = DateDiff("s", inicioExpediente, argHoraFinal)
                        Case Is < fimCafeManha
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                        Case Is < inicioCafeTarde
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Is < fimCafeTarde
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < inicioCafeManha
                        Select Case argHoraFinal
                        Case Is < inicioCafeManha
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Is < fimCafeManha
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                        Case Is < inicioCafeTarde
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Is < fimCafeTarde
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < fimCafeManha
                        Select Case argHoraFinal
                        Case Is < fimCafeManha
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", fimCafeManha, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", fimCafeManha, inicioAlmoco)
                        Case Is < inicioCafeTarde
                            TempoPrimDia = DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Is < fimCafeTarde
                            TempoPrimDia = DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", fimCafeManha, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < inicioAlmoco
                        Select Case argHoraFinal
                        Case Is < inicioAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Is < fimAlmoco
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                        Case Is < inicioCafeTarde
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Is < fimCafeTarde
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < fimAlmoco
                        Select Case argHoraFinal
                        Case Is < fimAlmoco
                        Case Is < inicioCafeTarde
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, argHoraFinal)
                        Case Is < fimCafeTarde
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        Case Is < fimExpediente
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < inicioCafeTarde
                        Select Case argHoraFinal
                        Case Is < inicioCafeTarde
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Is < fimCafeTarde
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeTarde)
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeTarde)
                            TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < fimCafeTarde
                        Select Case argHoraFinal
                        Case Is < fimCafeTarde
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", fimCafeTarde, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", fimCafeTarde, fimExpediente)
                        End Select
                    Case Is < fimExpediente
                        Select Case argHoraFinal
                        Case Is < fimExpediente
                            TempoPrimDia = DateDiff("s", argHoraInicial, argHoraFinal)
                        Case Else
                            TempoPrimDia = DateDiff("s", argHoraInicial, fimExpediente)
                        End Select
                    End Select
                Else
                    Select Case argHoraInicial
                    Case Is < inicioExpediente
                        TempoPrimDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < inicioCafeManha
                        TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeManha)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < fimCafeManha
                        TempoPrimDia = DateDiff("s", fimCafeManha, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < inicioAlmoco
                        TempoPrimDia = DateDiff("s", argHoraInicial, inicioAlmoco)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < fimAlmoco
                        TempoPrimDia = DateDiff("s", fimAlmoco, inicioCafeTarde)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < inicioCafeTarde
                        TempoPrimDia = DateDiff("s", argHoraInicial, inicioCafeTarde)
                        TempoPrimDia = TempoPrimDia + DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < fimCafeTarde
                        TempoPrimDia = DateDiff("s", fimCafeTarde, fimExpediente)
                    Case Is < fimExpediente
                        TempoPrimDia = DateDiff("s", argHoraInicial, fimExpediente)
                    End Select
                End If
            ElseIf dtData = argDataFinal Then
                Select Case argHoraFinal
                Case Is < inicioExpediente
                Case Is < inicioCafeManha
                    TempoUltDia = DateDiff("s", inicioExpediente, argHoraFinal)
                Case Is < fimCafeManha
                    TempoUltDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                Case Is < inicioAlmoco
                    TempoUltDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimCafeManha, argHoraFinal)
                Case Is < fimAlmoco
                    TempoUltDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                Case Is < inicioCafeTarde
                    TempoUltDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimAlmoco, argHoraFinal)
                Case Is < fimCafeTarde
                    TempoUltDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                Case Is < fimExpediente
                    TempoUltDia = DateDiff("s", inicioExpediente, inicioCafeManha)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimCafeManha, inicioAlmoco)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimAlmoco, inicioCafeTarde)
                    TempoUltDia = TempoUltDia + DateDiff("s", fimCafeTarde, argHoraFinal)
                End Select
            Else
                numeroDiasCompletos = numeroDiasCompletos + 1
            End If
        Next
        
        totalExpediente = totalExpediente + DateDiff("s", inicioExpediente, inicioCafeManha)
        totalExpediente = totalExpediente + DateDiff("s", fimCafeManha, inicioAlmoco)
        totalExpediente = totalExpediente + DateDiff("s", fimAlmoco, fimExpediente)
        
        TempoGasto = TempoPrimDia + numeroDiasCompletos * totalExpediente + TempoUltDia
        TempoGasto = TempoGasto \ 3600 & "h" & TempoGasto \ 60 Mod 60 & "m" & TempoGasto Mod 60 & "s"
        If Left(TempoGasto, 2) = "0h" Then TempoGasto = Mid(TempoGasto, 3)
        If Right(TempoGasto, 3) = "m0s" Then TempoGasto = Mid(TempoGasto, 1, Len(TempoGasto) - 2)
        If TempoGasto Like "*h0m*" Then TempoGasto = Mid(TempoGasto, 1, InStr(1, TempoGasto, "h")) & Mid(TempoGasto, InStr(TempoGasto, "m") + 1)
    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    ictsp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 166
    Registrado : 02/09/2016

    [Resolvido]Alterar horário módulo Empty Re: [Resolvido]Alterar horário módulo

    Mensagem  ictsp em 5/2/2020, 18:05

    Boa tarde!

    Prezado Alexandre Neves, sem palavras pra lhe agradecer por este auxílio.
    Muito obrigado mesmo por dispor do seu tempo e conhecimento.
    Ficou perfeito demais.

    Muitissimo obrigado!! cheers cheers

      Data/hora atual: 1/12/2020, 15:49