Boa tarde,
Tenho uma planilha de marcação de ponto onde da coluna A até a E tenho os seguintes dados respectivamente: Numero, Nome, Data, Hora, TipodeMarcacao, cada registro de marcação feita está em uma linha com esses dados, um funcionário pode ter várias marcações no mesmo dia em horas diferentes registrando assim suas entradas e saídas.
Preciso fazer uma macro que copie os dados dessa planilha a partir da coluna G sendo que se o próximo registro for do mesmo funcionário e no mesmo dia só será copiado as informações hora e tipomarcação, na mesma linha e na próxima coluna livre (L), se o registro for do mesmo funcionário mas em dia diferente o registro será copiado na linha debaixo, se o próximo registro for de outro funcionário deverá ser copiado na linha debaixo também.
Alguém pode me ajudar com isso?
Segue o arquivo de exemplo anexo para análise.
Experimente
Sub OrganizaDados() Dim N As Long, k As Long, c As Long, x As Long, m As Long, LR As Long For N = 2 To Cells(Rows.Count, 2).End(xlUp).Row k = Application.CountIf(Range("B" & N & ":B" & Cells(Rows.Count, 2).End(xlUp).Row), Cells(N, 2)): x = 7 c = Application.CountIf(Range(Cells(N, 3), Cells(N + k - 1, 3)), Cells(N, 3)) LR = Cells(Rows.Count, 7).End(xlUp).Row Cells(LR + 1, x).Resize(, 5).Value = Cells(N, 1).Resize(, 5).Value: x = 12 For m = N + 1 To N + c - 1 Cells(LR + 1, x).Resize(, 2).Value = Cells(m, 4).Resize(, 2).Value: x = x + 2 Next m N = N + c - 1 Next N End Sub
Osvaldo