The file is ok, but I noticed that when I'm on a Day sheet, hit End and push down I will get to row 700. So I used rows 2:699 as possible entry rows. Meaning you won't enter rows of data after row 699.
Copy this code into each of the Day sheets:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C2:C699")) Is Nothing Then Exit Sub
Dim opID As String
opID = Target.Value
Range(Cells(Target.Row, "A"), Cells(Target.Row, "L")).Copy
On Error GoTo EM
Sheets(opID).Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
MsgBox "There is no sheet called " & opID & " !", vbExclamation
You will get a warning when the Operator's ID hasn't got his own sheet yet, or when you make a typo.
This code will work for any upcoming entry's.
To handle the data you have already inputted I have created the following code:
Dim ws As Worksheet
Dim lRow, x As Integer
For Each ws In Worksheets
If Len(ws.Name) = 5 Then
x = 1
lRow = Range("C" & x).End(xlDown).Row
If lRow > 698 Then GoTo NextWS
x = x + 1
Range("C" & x).Value = Range("C" & x).Value
Loop Until x = lRow
Run this code from a standard module. The code basicly loops throught the Day sheets and re-enters the operator ID's thus activating the first code.