Okie dokie. Here we go:-
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Intersect(Target, Columns("I:K")) Is Nothing Then Exit Sub
Sheets(Target.Value).Range("A" & Rows.Count).End(3)(2).PasteSpecial xlValues
Application.CutCopyMode = False
Application.EnableEvents = True
Application.ScreenUpdating = True
You'll notice a slight modification to the code. Place it in the Master Ledger module as per the instructions in post#3.
Columns I, J and K are now active so, once you enter the relevant criteria in a cell in one of these columns, and click away (or press enter or down arrow), the relevant row of data will be transferred to the relevant individual sheet.
I've added an extra line of code which will take you directly to the individual sheet to which data has just been transferred. If this becomes a little annoying for you, just remove line 10 from the code above.
Remember to make sure that the category that you type into a cell in Columns I, J or K is spelled exactly the same as the sheet tab name. To minimise errors in this regard, it may be worth your while to create validation lists for all three columns for all the categories. This way, any user can just select a category from the drop down list that appears rather than type it in.
I hope that this helps.