Ir para conteúdo
Fórum Script Brasil

danisantiago

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que danisantiago postou

  1. Boa tarde, Estou fazendo o cálculo de tempo de atendimento de chamados, porém nesse cálculo preciso desconsiderar o horário de almoço (12 as 13), ou seja, ao invés de 9h trabalhadas no dia, serão consideradas 8h. Fiz o calculo abaixo, porém não sei onde coloco o expurgo do tempo de almoço, algum tem uma ideia? UltLinTempoAtendimento = Sheets(nomeWorksheet).Cells(Rows.Count, 18).End(xlUp).Row If UltLinTempoAtendimento < UltLinCod Then For i = UltLinTempoAtendimento + 1 To UltLinCod If Sheets(nomeWorksheet).Cells(i, 2) <> "" And Sheets(nomeWorksheet).Cells(i, 3) <> "" And Sheets(nomeWorksheet).Cells(i, 4) <> "" And Sheets(nomeWorksheet).Cells(i, 7) <> "" And Sheets(nomeWorksheet).Cells(i, 8) <> "" And Sheets(nomeWorksheet).Cells(i, 16) <> "" Then LinhaProblema = Sheets(nomeWorksheet).Cells(i, 2) dInitial = Sheets(nomeWorksheet).Cells(i, 3) hInitial = Sheets(nomeWorksheet).Cells(i, 4) dEnd = Sheets(nomeWorksheet).Cells(i, 7) hEnd = Sheets(nomeWorksheet).Cells(i, 8) Estado = Sheets(nomeWorksheet).Cells(i, 16) If Estado = "Rio de Janeiro" Then If Weekday(dInitial) = 1 Then dInitial = dInitial + 1 hInitial = 9 / 24 ElseIf Weekday(dInitial) = 7 Then dInitial = dInitial + 2 hInitial = 9 / 24 End If Do While Application.WorksheetFunction.NetworkDays(dInitial, dInitial, feriados) < 1 dInitial = dInitial + 1 hInitial = 9 / 24 Loop If Weekday(dEnd) = 1 Then dEnd = dEnd + 1 hEnd = 9 / 24 ElseIf Weekday(dEnd) = 7 Then dEnd = dEnd + 2 hEnd = 9 / 24 End If Do While Application.WorksheetFunction.NetworkDays(dEnd, dEnd, feriados) < 1 dEnd = dEnd + 1 hEnd = 9 / 24 Loop If intDiasuteis = 0 Then intDiasuteis = 1 End If If hInitial > 18 / 24 Then dInitial = dInitial + 1 hInitial = 9 / 24 ElseIf hInitial < 9 / 24 Then hInitial = 9 / 24 End If If hEnd > 18 / 24 Then hEnd = 18 / 24 ElseIf hEnd < 9 / 24 Then hEnd = 9 / 24 End If intDiasuteis = Application.WorksheetFunction.NetworkDays(dInitial, dEnd, feriados) dblHoras = Hour(hEnd) - Hour(hInitial) dblMinutos = Minute(hEnd) - Minute(hInitial) dblSegundos = Second(hEnd) - Second(hInitial) Sheets(nomeWorksheet).Cells(i, 18) = (intDiasuteis - 1) * 8 * 60 + dblHoras * 60 + dblMinutos + dblSegundos / 60 ElseIf Estado = "Maranhão" Then If Weekday(dInitial) = 1 Then dInitial = dInitial + 1 hInitial = 7 / 24 ElseIf Weekday(dInitial) = 7 Then dInitial = dInitial + 2 hInitial = 7 / 24 End If Do While Application.WorksheetFunction.NetworkDays(dInitial, dInitial, feriados) < 1 dInitial = dInitial + 1 hInitial = 7 / 24 Loop If Weekday(dEnd) = 1 Then dEnd = dEnd + 1 hEnd = 7 / 24 ElseIf Weekday(dEnd) = 7 Then dEnd = dEnd + 2 hEnd = 7 / 24 End If Do While Application.WorksheetFunction.NetworkDays(dEnd, dEnd, feriados) < 1 dEnd = dEnd + 1 hEnd = 7 / 24 Loop If intDiasuteis = 0 Then intDiasuteis = 1 End If If hInitial > 16 / 24 Then dInitial = dInitial + 1 hInitial = 7 / 24 ElseIf hInitial < 7 / 24 Then hInitial = 7 / 24 End If If hEnd > 16 / 24 Then hEnd = 16 / 24 ElseIf hEnd < 7 / 24 Then hEnd = 7 / 24 End If intDiasuteis = Application.WorksheetFunction.NetworkDays(dInitial, dEnd, feriados) dblHoras = Hour(hEnd) - Hour(hInitial) dblMinutos = Minute(hEnd) - Minute(hInitial) dblSegundos = Second(hEnd) - Second(hInitial) Sheets(nomeWorksheet).Cells(i, 18) = (intDiasuteis - 1) * 8 * 60 + dblHoras * 60 + dblMinutos + dblSegundos / 60 End If End If Next End If End Sub obrigada.
×
×
  • Criar Novo...