MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


2 participantes

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    avatar
    miguel_team
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 24/11/2012

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  miguel_team 9/9/2014, 22:23

    Olá a todos,

    Tenho este exemplo que calcula da data/hora final com base num tempo de tarefa.

    Pretendia indicar data/hora inicial e final e me informasse o tempo da tarfefa..

    Alguém me pode ajudar?

    Obrigado
    Anexos
    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Attachmentexpediente.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (109 Kb) Baixado 20 vez(es)
    percoski
    percoski
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 319
    Registrado : 27/02/2013

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  percoski 9/9/2014, 22:35

    Olá, não olhei o seu bd, mas acho que esse tutorial do mestre Avelino pode t ajudar....

    http://www.usandoaccess.com.br/tutoriais/tuto49.asp?id=1#inicio
    avatar
    miguel_team
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 24/11/2012

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  miguel_team 10/9/2014, 08:08

    Já vi esse exemplo mas não consigo chegar lá..

    Podes dar uma olhada no meu exemplo?
    Muito obrigado
    percoski
    percoski
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 319
    Registrado : 27/02/2013

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  percoski 10/9/2014, 15:10

    No artigo do Avelino tem um link para do exemplo baixa e veja se dá para adaptar para voce http://www.usandoaccess.com.br/tutoriais/exemplos/HorasExtras.zip[/url]
    avatar
    miguel_team
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 24/11/2012

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  miguel_team 10/9/2014, 18:55

    Eu já vi o exemplo, o problema é que não consigo adaptar ao que eu quero..
    No meu exemplo penso que seja simples modificar para o que eu quero, mas não percebo muito de código vba.

    Agradecia-te imenso se me pudesses ajudar..Obrigado
    percoski
    percoski
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 319
    Registrado : 27/02/2013

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  percoski 10/9/2014, 23:30

    faz o seguinte, faça o banco e poste o seu banco com a dúvida ai fica mais facil para t ajudar
    avatar
    miguel_team
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 24/11/2012

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  miguel_team 11/9/2014, 21:47

    O código é este:

    Option Compare Database
    Option Explicit

    Function dataFinalTarefa(argDataInicial As Date, argTempo As String) As Variant
    '===========================================================
    'Função que calcula uma data e hora final a partir de uma data
    'e hora inicial somando-se uma quantidade de horas referentes
    'a uma tarefa.
    '
    'Autor: Plinio Mabesi
    'Contato: pliniomabesi@gmail.com
    'Novembro - 2009
    '
    '===========================================================

    Dim horaInicial As Double, horaFinal As Double
    Dim inicioExpediente As Double, fimExpediente As Double
    Dim inicioCafe As Double, fimCafe As Double
    Dim inicioAlmoco As Double, fimAlmoco As Double
    Dim TempoTarefa As Double
    Dim totalExpediente As Double
    Dim totalCafe As Double
    Dim totalAlmoco As Double
    Dim restante As Double
    Dim numeroDias As Integer
    Dim teste As Double
    Dim i As Integer

    'Configuração dos dados iniciais. Para personalizar
    'basta alterar os valores a serem utilizados.
    inicioExpediente = converteHoraDouble("07:00")
    inicioCafe = converteHoraDouble("09:00")
    fimCafe = converteHoraDouble("09:15")
    inicioAlmoco = converteHoraDouble("11:30")
    fimAlmoco = converteHoraDouble("12:30")
    fimExpediente = converteHoraDouble("17:00")

    TempoTarefa = converteHoraDouble(argTempo)

    totalCafe = fimCafe - inicioCafe
    totalAlmoco = fimAlmoco - inicioAlmoco
    totalExpediente = fimExpediente - inicioExpediente - totalAlmoco - totalCafe

    horaInicial = converteHoraDouble(Format(Hour(argDataInicial), "00") & ":" & Format(Minute(argDataInicial), "00"))

    numeroDias = ((horaInicial + TempoTarefa - inicioExpediente) * 10000) \ ((totalExpediente + 0.0001) * 10000)

    If horaInicial < inicioExpediente Or horaInicial > fimExpediente Or (horaInicial >= inicioCafe And horaInicial < fimCafe) Or (horaInicial >= inicioAlmoco And horaInicial < fimAlmoco) Then
    dataFinalTarefa = "Hora inicial inválida!"
    Exit Function
    End If

    dataFinalTarefa = argDataInicial

    For i = 1 To numeroDias

    Do
    dataFinalTarefa = dataFinalTarefa + 1
    Loop Until diaUtil(dataFinalTarefa)

    Next i

    horaFinal = horaInicial + TempoTarefa

    If horaInicial < inicioCafe And horaFinal > inicioCafe Then
    horaFinal = horaFinal + totalCafe
    End If

    If horaInicial < inicioAlmoco And horaFinal > inicioAlmoco Then
    horaFinal = horaFinal + totalAlmoco
    End If

    If horaFinal > fimExpediente Then
    horaFinal = horaFinal - fimExpediente
    horaFinal = Round(horaFinal, 3) - Round(((horaFinal * 1000) \ (totalExpediente * 1000)) * totalExpediente, 3)
    horaFinal = horaFinal + inicioExpediente
    End If

    If horaFinal > inicioCafe And numeroDias > 0 Then

    horaFinal = horaFinal + totalCafe

    If horaFinal > inicioAlmoco Then

    horaFinal = horaFinal + totalAlmoco

    If horaFinal > fimExpediente Then
    restante = horaFinal - fimExpediente
    horaFinal = inicioExpediente + restante
    Do
    dataFinalTarefa = dataFinalTarefa + 1
    Loop Until diaUtil(dataFinalTarefa)
    End If

    End If

    ElseIf horaFinal = inicioExpediente Then
    horaFinal = fimExpediente
    End If

    dataFinalTarefa = CDate(Day(dataFinalTarefa) & "/" & Month(dataFinalTarefa) & "/" & Year(dataFinalTarefa) & _
    " " & Fix(horaFinal) & ":" & Round((horaFinal - Fix(horaFinal)) * 60))

    End Function

    Function converteHoraDouble(argHora As String) As Double

    Dim lngHora As Long, dblMinuto As Double

    lngHora = CInt(Left(argHora, 2))
    dblMinuto = CDbl(Right(argHora, 2))
    dblMinuto = (dblMinuto * 100) / 60

    converteHoraDouble = lngHora + dblMinuto / 100

    End Function

    Function converteHoraTexto(argHora As Double) As String

    Dim intHora As Integer, intMinuto As Integer

    intHora = Fix(argHora)
    intMinuto = (argHora - intHora) * 100
    intMinuto = (intMinuto * 60) / 100

    converteHoraTexto = Format(intHora, "00") & ":" & Format(intMinuto, "00")

    End Function


    No Formulario "Ao Abrir":

    Private Sub Form_Open(Cancel As Integer)
    DoCmd.MoveSize , , 12 * 567, 16 * 567
    End Sub


    avatar
    miguel_team
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6
    Registrado : 24/11/2012

    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  miguel_team 17/9/2014, 08:31

    Obrigado pela resposta marci percoski.... deus te pague na mesma moeda!!

    Conteúdo patrocinado


    Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral Empty Re: Ajuda código vba - Calculo entre data/hora tomando em conta fim de semana e horário laboral

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 09:22