Try this. Also added a little formatting at the end.
Sub CopyData()
Dim r As Long, rng As Range
With Sheets("Database")
.UsedRange.ClearContents
.Range("A1:K1") = [{"EMPLOYEE","DATE","PROGRAM","ACTIVITY","EARN CODE","SHIFT","SPECIAL RATE","FUND","ORG","ACCOUNT","HOURS"}]
For Each rng In Sheets("Timecard").Range("K8:Q8")
For r = 1 To 39
If Not IsEmpty(rng.Offset(r)) Then
.Cells(Rows.Count, 1).End(xlUp)(2) = Sheets("Timecard").Cells(3, "N")
.Cells(Rows.Count, 2).End(xlUp)(2) = rng
.Cells(Rows.Count, 3).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "H")
.Cells(Rows.Count, 4).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "I")
.Cells(Rows.Count, 5).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "A")
.Cells(Rows.Count, 6).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "B")
.Cells(Rows.Count, 7).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "D")
.Cells(Rows.Count, 8).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "E")
.Cells(Rows.Count, 9).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "F")
.Cells(Rows.Count, 10).End(xlUp)(2) = Sheets("Timecard").Cells(r + 8, "G")
.Cells(Rows.Count, 11).End(xlUp)(2) = rng.Offset(r)
With .UsedRange
.Columns(2).NumberFormat = "m/d/yyyy"
.HorizontalAlignment = xlCenter
.Columns.AutoFit
End With
End If
Next r
Next rng
End With
End Sub
Bookmarks