Página 1 de 1

Divisão de horas trabalhadas

Enviado: 20 Mai 2018 às 19:22
por Suenne
Caros, boa noite!!

tenho um relatório de folha de pagamento que me retorna as tarefas do colaborador e as horas totais trabalhadas.

Eu preciso dividir essas horas trabalhadas proporcionalmente pelo valor de cada tarefa.

O layout do relatório é semelhante ao em anexo. O colaborador pode ter n tarefas, porém as horas vem totalizadas somente na linha da primeira tarefa e com o valor cheio.

Alguém pode me dar uma ajuda? de como fazer essa regra de forma automática?

Obrigada!!

Re: Divisão de horas trabalhadas

Enviado: 21 Mai 2018 às 13:13
por osvaldomp
Se você quiser experimentar esta solução via macro, instale o código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).
Código: Selecionar todos
Sub RateioDeHoras()
 Dim h As Range, LR As Long, i As Long, m As Range
 LR = Cells(Rows.Count, "E").End(3).Row
  For Each h In Range("G2:G" & LR).SpecialCells(2)
   Set m = Range("G" & h.Row + 1 & ":G" & LR).Find("*")
    If Not m Is Nothing Then
     i = m.Row - h.Row
     Cells(h.Row, 6).Resize(i).Formula = _
      "=G$" & h.Row & "*" & "E" & h.Row & "/SUM(E$" & h.Row & ":E$" & m.Row - 1 & ")"
    Else
     Cells(h.Row, 6).Resize(i).Formula = _
      "=G$" & h.Row & "*" & "E" & h.Row & "/SUM(E$" & h.Row & ":E$" & LR & ")"
    End If
  Next h
  Range("F2:F" & LR).Value = Range("F2:F" & LR).Value
End Sub