I added CODE tags to your post - use the [#] icon to enter them and paste your macro between. It sets the macro off and does some formatting
Instead of your Transfer() macro, I'd use a WS event so that when I put an X in col J on the other sheets, the information would automatically go to the next row on Inspection
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rNextEntry As Range, rCell As Range
Dim wsInsp As Worksheet, ws As Worksheet
'we only want the RAIL CAR sheets
If Sh.Range("A2").Value <> "RAIL CAR" Then Exit Sub
'just use the first cell
Set rCell = Target.Cells(1, 1)
'if not in col J
If rCell.Column <> 10 Then Exit Sub
'if cell to left is empty then exit
If Len(rCell.Offset(0, -1).Value) = 0 Then Exit Sub
'x or X
If UCase(rCell.Value) <> "X" Then Exit Sub
'get first blank cell in Col B on Inspection sheet
Set wsInsp = Worksheets("Inspection")
Set rNextEntry = wsInsp.Cells(wsInsp.Rows.Count, 2).End(xlUp).Offset(1, 0).EntireRow
Application.EnableEvents = False
With rCell.EntireRow
rNextEntry.Cells(1, 2).Value = .Cells(1, 1).Value ' PREFIX --> INT
rNextEntry.Cells(1, 3).Value = .Cells(1, 2).Value ' CAR NUMBER
rNextEntry.Cells(1, 4).Value = .Cells(1, 5).Value ' MATERIAL
rNextEntry.Cells(1, 6).Value = .Cells(1, 4).Value ' POINT --> SHIPPER
End With
Application.EnableEvents = True
wsInsp.Select
End Sub