Option Explicit
Dim rowcount As Long
Dim mycoll As Collection, myrng As Range, cell, i As Integer, logintime, logouttime
Sub createAttendance()
On Error Resume Next
Set mycoll = New Collection
Application.ScreenUpdating = False
rowcount = ThisWorkbook.Sheets(1).Range("C7").End(xlDown).Row
Set myrng = ThisWorkbook.Sheets(1).Range("C7:C" & rowcount)
For Each cell In myrng
mycoll.Add cell, CStr(cell)
Next
i = 0
For i = 1 To mycoll.Count
ThisWorkbook.Sheets(2).Cells(i + 1, 1) = mycoll(i)
ThisWorkbook.Sheets(1).Range("C6").AutoFilter field:=3, Criteria1:=mycoll(i)
Set myrng = ThisWorkbook.Sheets(1).Range("A7:A" & rowcount).SpecialCells(xlCellTypeVisible)
logouttime = Format(WorksheetFunction.Max(myrng), "hh:mm:ss AMPM")
logintime = Format(WorksheetFunction.Min(myrng), "hh:mm:ss AMPM")
ThisWorkbook.Sheets(2).Cells(i + 1, 1) = mycoll(i)
ThisWorkbook.Sheets(2).Cells(i + 1, 2) = logintime
ThisWorkbook.Sheets(2).Cells(i + 1, 3) = logouttime
ThisWorkbook.Sheets(2).Cells(i + 1, 4).Formula = "=" & ThisWorkbook.Sheets(2).Cells(i + 1, 3).Address & "-" & ThisWorkbook.Sheets(2).Cells(i + 1, 2).Address
ThisWorkbook.Sheets(2).Cells(i + 1, 4).NumberFormat = "hh:mm:ss"
Next
End Sub
Dim rowcount As Long
Dim mycoll As Collection, myrng As Range, cell, i As Integer, logintime, logouttime
Sub createAttendance()
On Error Resume Next
Set mycoll = New Collection
Application.ScreenUpdating = False
rowcount = ThisWorkbook.Sheets(1).Range("C7").End(xlDown).Row
Set myrng = ThisWorkbook.Sheets(1).Range("C7:C" & rowcount)
For Each cell In myrng
mycoll.Add cell, CStr(cell)
Next
i = 0
For i = 1 To mycoll.Count
ThisWorkbook.Sheets(2).Cells(i + 1, 1) = mycoll(i)
ThisWorkbook.Sheets(1).Range("C6").AutoFilter field:=3, Criteria1:=mycoll(i)
Set myrng = ThisWorkbook.Sheets(1).Range("A7:A" & rowcount).SpecialCells(xlCellTypeVisible)
logouttime = Format(WorksheetFunction.Max(myrng), "hh:mm:ss AMPM")
logintime = Format(WorksheetFunction.Min(myrng), "hh:mm:ss AMPM")
ThisWorkbook.Sheets(2).Cells(i + 1, 1) = mycoll(i)
ThisWorkbook.Sheets(2).Cells(i + 1, 2) = logintime
ThisWorkbook.Sheets(2).Cells(i + 1, 3) = logouttime
ThisWorkbook.Sheets(2).Cells(i + 1, 4).Formula = "=" & ThisWorkbook.Sheets(2).Cells(i + 1, 3).Address & "-" & ThisWorkbook.Sheets(2).Cells(i + 1, 2).Address
ThisWorkbook.Sheets(2).Cells(i + 1, 4).NumberFormat = "hh:mm:ss"
Next
End Sub