I still would do all my typing (just for the sake of a quick validation check),
then copy the rows to the other sheets all at once.
Maybe you can steal some code from Debra Dalgleish's site:
There are a couple of files here:
http://www.contextures.com/excelfiles.html
Create New Sheets from Filtered List -- uses an Advanced Filter to create
separate sheet of orders for each sales rep visible in a filtered list; macro
automates the filter. AdvFilterRepFiltered.xls 35 kb
Update Sheets from Master -- uses an Advanced Filter to send data from
Master sheet to individual worksheets -- replaces old data with current.
AdvFilterCity.xls 55 kb
But if you want...
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim destCell As Range
Dim testWks As Worksheet
'one cell at a time only!
If Target.Cells.Count > 1 Then Exit Sub
'only check column J
If Intersect(Target, Me.Range("J:J")) Is Nothing Then Exit Sub
'and it can't be empty!
If IsEmpty(Target) Then Exit Sub
'Column A of the row must have data
If IsEmpty(Me.Cells(Target.Row, "A")) Then
MsgBox "Please put something in A" & Target.Row
Exit Sub
End If
Set testWks = Nothing
On Error Resume Next
Set testWks = Me.Parent.Worksheets(Target.Value)
On Error GoTo 0
If testWks Is Nothing Then
'doesn't match an existing worksheet
'it could mean that the worksheet is missing, too,
'but I'm guessing that it'll probably be a typo
MsgBox "Please fix the value in: " & Target.Address(0, 0)
Exit Sub
End If
With testWks
Set destCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With
On Error GoTo errHandler:
Application.EnableEvents = False
Target.EntireRow.Resize(1, 9).Copy _
Destination:=destCell
Target.Value = "Copied"
Beep
errHandler:
Application.EnableEvents = True
End Sub
This actually allows any entry in column J and looks for a worksheet to match.
If that's a problem, the macro could be changed to only look for those 3
entries.