I'm more hungry for a reputation than Ben M, so I'll send you the code. :) You should still, of course, consult and start reading good books.
The following may use some tweaking, but should be a good starting point. If, as you wrote, you want Excel to automatically move the name and status of the employee as soon as an inactive choice is made, this should do the trick:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False ' Only react to edits in Column B: ' If Not Intersect(Target, Sheets("Employee List").Range("B:B")) Is Nothing Then ' Dont do anything if > 1 cell was just changed: ' If Target.Cells.Count = 1 Then ' Only make the change if the new value in Col B is "inactive": ' If Target.Value = "Inactive" Then ' Find the next available cell on the Misc sheet for a name: ' Dim nextRange As Range Set nextRange = Sheets("Misc").Range("A65536").End(xlUp).Offset(1, 0) ' Cut the employee name and status and paste onto the Misc sheet: ' Range(Target, Target.Offset(0, -1)).Cut Sheets("Misc").Paste Destination:=Sheets("Misc").Range(nextRange.Address) End If End If End If Application.EnableEvents = True End Sub
Note that whenever you write code with an event, you probably need to disable events so that Excel does not fall into any endless loop.
source share