Notifications
Clear all

IDENTIFICAR DIAS E MESES E TRANSPORTAR HORÁRIO

9 Posts
3 Usuários
0 Reactions
1,332 Visualizações
(@kratoagn)
Posts: 5
Active Member
Topic starter
 

Olá Pessoal,
Sou leigo em VBA e apenas sei o básico do básico do Excel. Porém trabalho com uma planilha de apuração de horas extras e gostaria de torná-la eficiente e o mais prática possivel. Seria dessa forma:
HORÁRIO PADRÃO A SER DIGITADO UMA ÚNICA VEZ( NO TOPO DA PLANILHA)
dia/sem h. ent h. saí h. ent h. saí
seg 08:00 12:00 13:00 19:00
ter 07:00 12:30 14:00 18:00
qua 08:30 12:30 13:30 17:00
qui 07:30 12:00 13:00 17:30
sex 08:30 12:00 13:00 19:00
sáb 08:00 14:00
dom 12:00 18:00

Ao ser digitado o horário acima o excel faria uma varredura em todos os meses abaixo efetuando o preenchimento sem a necessidade de ir dia-a-dia e mês-a-mês digitando o horário.LEMBRANDO QUE ENTRE UM MÊS E OUTRO EXISTEM 04 LINHAS EM BRANDO. Desde já agradeço a atenção de todos!

MÊS ABR/13
dia/mês dia/sem h. ent h. saí h. ent h. saí
01 seg 08:00 12:00 13:00 19:00
02 ter 07:00 12:30 14:00 18:00
03 qua 08:30 12:30 13:30 17:00
04 qui 07:30 12:00 13:00 17:30
05 sex 08:30 12:00 13:00 19:00
06 sáb 08:00 14:00
07 dom 12:00 18:00
08 seg 08:00 12:00 13:00 19:00
... ...
MÊS MAI/13
dia/mês dia/sem h. ent h. saí h. ent h. saí
01 qua 08:30 12:30 13:30 17:00
02 qui 07:30 12:00 13:00 17:30
03 sex 08:30 12:00 13:00 19:00
04 sáb 08:00 14:00
05 dom 12:00 18:00
06 seg 08:00 12:00 13:00 19:00
07 ter 07:00 12:30 14:00 18:00
08 qua 08:30 12:30 13:30 17:00
... ...

 
Postado : 09/04/2013 6:18 am
(@alminen)
Posts: 77
Trusted Member
 

Podia postar um exemplo da planilha que você utiliza? Para melhor visualização.

 
Postado : 09/04/2013 6:31 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

kratoagn,

realmente uma planilha já iniciada facilitaria.

De qualquer forma, segue um exemplo.
Modifiquei algumas coisas para facilitar o a elaboração.

Dependendo da versão do Office ou de algumas configurações do Excel, a função EoMonth pode não ser identificada.

Segue o código abaixo e o arquivo anexo.

Faça testes e reporte erros ou resultados não esperados.

Sub Preencher()

imes = Month(Now())
fmes = 12
ano = Year(Now())
lin = 11

Range("A11:F400").ClearContents

Do While imes <= fmes
idia = 1
dia = CDate(1 & "/" & imes & "/" & ano)
fdia = Day(eomonth(dia, 0))
Cells(lin, 1) = UCase(MonthName(imes, 1)) & "/" & ano
lin = lin + 1
Cells(lin, 1) = "dia"
Cells(lin, 2) = "dia/sem"
Cells(lin, 3) = "h.ent"
Cells(lin, 4) = "h.saída"
Cells(lin, 5) = "h.ent"
Cells(lin, 6) = "h.saída"
lin = lin + 1
Do While idia <= fdia
d = CDate(idia & "/" & imes & "/" & ano)
s = Weekday(d)
slin = s + 1
Cells(lin, 1) = idia
Cells(lin, 2) = Cells(slin, 1)
Cells(lin, 3) = Cells(slin, 2)
Cells(lin, 4) = Cells(slin, 3)
If s <> 1 And s <> 7 Then
Cells(lin, 5) = Cells(slin, 4)
Cells(lin, 6) = Cells(slin, 5)
End If
idia = idia + 1
lin = lin + 1
Loop
imes = imes + 1
lin = lin + 4
Loop

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/04/2013 9:32 am
(@kratoagn)
Posts: 5
Active Member
Topic starter
 

Olá Édson,

Eu baixei sua planilha mas a mesma deu erro. Preenchi apenas o horário do domingo e a mesma não transportou, dando o seguinte erro:" Não é possível executar o código no modo interromper." Estou enviando um modelo com uma melhor aparência, haja vista que mesmo compactada a planilha original supera 01GB e o site não permitiu anexar. Mas você entendeu exatamente o que eu quero. Acho que falta apenas detalhes mínimos. Todas os suplementos do meu excel estão habilitados.Espero que fique mais claro para você. Desde já agradeço sua atenção.

 
Postado : 09/04/2013 8:37 pm
(@kratoagn)
Posts: 5
Active Member
Topic starter
 

Podia postar um exemplo da planilha que você utiliza? Para melhor visualização.

Ok Alminen,

Estou anexando um protótipo da planilha, talvez fique melhor de compreender.
Desde logo agradeço a atenção
kratoagn

 
Postado : 09/04/2013 9:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

kratoagn,

Também não consegui rodar a macro do Edson mas aproveitei a planilha dele pra demonstrar que é possível matar o problema via fórmulas.

Digite os horários e a data inicial que o modelo calcula/reporta o que vc precisa. Até dezembro de 2020.

Se não avançar avise.

Abs,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/04/2013 12:54 am
(@kratoagn)
Posts: 5
Active Member
Topic starter
 

Gostaria de agradecer ao Edson e ao Elminen pela iniciativa de me ajudar. O mandrix resolveu através de fórmulas, ao qual também agradeço. Mas o Post continua para aqueles que quiserem aperfeiçoá-lo.

Obrigado a todos.

 
Postado : 10/04/2013 7:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

kratoagn,

Só agora vi que vc postou seu modelo. Na realidade ficou bem mais simples agora. Uma única fórmula fecha o caixão.

Em D26 faça:

=SE(PROCV($C26;$C$6:$S$12;COL()-2;0)=0;"";PROCV($C26;$C$6:$S$12;COL()-2;0))

Arraste para baixo e para a direita.

Deixei no anexo para vc ver.

Qq galho me fala.

Abs,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/04/2013 8:29 pm
(@kratoagn)
Posts: 5
Active Member
Topic starter
 

kratoagn,

Só agora vi que vc postou seu modelo. Na realidade ficou bem mais simples agora. Uma única fórmula fecha o caixão.

Em D26 faça:

=SE(PROCV($C26;$C$6:$S$12;COL()-2;0)=0;"";PROCV($C26;$C$6:$S$12;COL()-2;0))

Arraste para baixo e para a direita.

Deixei no anexo para vc ver.

Qq galho me fala.

Abs,

Gostaria de agradecer ao Edson e ao Elminen pela iniciativa de me ajudar. O mandrix resolveu através de fórmulas, ao qual também agradeço. Mas o Post continua para aqueles que quiserem aperfeiçoá-lo.

Obrigado a todos.

MANDRIX.XLS,

Resolveu o problema do preenchimento, mas à direita existem outras colunas que efetuam cálculos de h. extras diárias, semanais, adic. noturno, etc. Nestas células
deu erro #VALOR!. Se eu tivesse conseguido enviar a planilha original talvez vc já tivesse resolvido este problema.

De qualquer forma agradeço!

 
Postado : 11/04/2013 10:04 pm