Notifications
Clear all

Controle de ponto

6 Posts
4 Usuários
0 Reactions
1,390 Visualizações
(@suenne)
Posts: 50
Trusted Member
Topic starter
 

Caros, bom dia!

estou desenvolvendo uma planilha para controlar o registro de ponto de aproximadamente 40 colaboradores.

Minha dificuldade está em concatenar todos esses dados e no final gerar um relatório dinâmico para acompanhamento de horas extras.

Eu criei um formulário único, onde ao trocar o colaborador ele limpa os dados, porém antes disso eu preciso de algum comando para enviar para base de dados, onde vou utilizar para fazer o relatório.

Nessa base de dados eu preciso das informações: Colaborador | Data | Dia da semana | Entrada | Saída | Entrada | Saída | Carga horária / Dia | Jornada | HE.

Segue em anexo planilha.

 
Postado : 27/08/2015 5:14 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Boa tarde.

Vou dar um conselho que também dei a outra pessoa, ao invés de inserir registro por registro, porque não manter na base somente os dados de quando o funcionário não realizou as horas normais.

+/- conforme o exemplo em anexo!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 27/08/2015 10:07 am
(@mprudencio)
Posts: 2749
Famed Member
 

Se eu entendi vc quer inserir os registros uma abaixo do outro é isso, a cada funcionario vc quer colocar todos os funcionarios um abaixo do outro para ter um relatorio unico que sera feito o seu relatorio de horas extras. É isso?

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/08/2015 11:07 am
(@suenne)
Posts: 50
Trusted Member
Topic starter
 

É isso Prudêncio.

veja como está minha macro:

Option Explicit
Sub Enviar_dados()

Worksheets("Base geral").Rows("2:1000").EntireRow.Delete
Worksheets("Ponto").Range("C13:K43").Copy
     With Worksheets("Base geral").Range("D1").End(xlUp).Offset(1)
         .PasteSpecial xlPasteFormats
         .PasteSpecial xlPasteValues
    End With
       
       
    With Worksheets("Base geral")
        .Range("A2:A32") = Worksheets("Ponto").Range("D5")
        .Range("B2:B32") = Worksheets("Ponto").Range("D7")
        .Range("C2:C32") = Worksheets("Ponto").Range("D9")
    End With

End Sub
 
Postado : 27/08/2015 1:33 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

É isso Prudêncio.

veja como está minha macro:

Option Explicit
Sub Enviar_dados()

Worksheets("Base geral").Rows("2:1000").EntireRow.Delete
Worksheets("Ponto").Range("C13:K43").Copy
     With Worksheets("Base geral").Range("D1").End(xlUp).Offset(1)
         .PasteSpecial xlPasteFormats
         .PasteSpecial xlPasteValues
    End With
       
       
    With Worksheets("Base geral")
        .Range("A2:A32") = Worksheets("Ponto").Range("D5")
        .Range("B2:B32") = Worksheets("Ponto").Range("D7")
        .Range("C2:C32") = Worksheets("Ponto").Range("D9")
    End With

End Sub

Boa tarde, Suenne.

Vê se esse código te ajuda

Sub Enviar_dados()

Dim UltimaCelula As Long
Dim UltimaLinha As Long
Dim i As Integer

    Sheets("Ponto").Select
    Range("C13:K13").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

    Sheets("Base Geral").Select
    Range("D65536").End(xlUp).Offset(1, 0).Select
    
    Selection.PasteSpecial Paste:=xlPasteValues
    Selection.PasteSpecial Paste:=xlPasteFormats
    
    Application.CutCopyMode = False
    
    UltimaCelula = Sheets("Base Geral").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    UltimaLinha = Sheets("Base Geral").Cells(Cells.Rows.Count, "D").End(xlUp).Row
    
        For i = UltimaCelula To (UltimaLinha - 1)
            
            Sheets("Base Geral").Range("A65536").End(xlUp).Offset(1, 0) = Sheets("Ponto").Range("D5").Value
            Sheets("Base Geral").Range("B65536").End(xlUp).Offset(1, 0) = Sheets("Ponto").Range("D7").Value
            Sheets("Base Geral").Range("C65536").End(xlUp).Offset(1, 0) = Sheets("Ponto").Range("D9").Value

        Next i

End Sub

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 27/08/2015 2:31 pm
(@suenne)
Posts: 50
Trusted Member
Topic starter
 

Trindade, era disso mesmo que eu precisava!

Muito obrigada!!

 
Postado : 27/08/2015 2:48 pm