This should do the trick. tho like usual @ronjonp's is better.
(defun c:nc (/ LastEnt SS layerName2)
(setq LastEnt (entlast)) ;Sets a place maker anything created, copied, or moved will end up in the selection SS
(setq SS (ssadd))
(command "_.ncopy" (while (< 0 (getvar 'CMDACTIVE)) (command pause)) "" "_non" '(0 0) "_non" '(0 0))
;above keeps pausing allowing The user to make multiple selections. have to right click to exit.
;(setq lay (cdr (assoc 8 (entget (entlast)))))
;(setq layerName1 "layerName1")
(setq layerName2 "C-NPLT")
;check if layer exist else make new layer.
(or (tblsearch "LAYER" layerName2) (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 layerName2) '(70 . 0) '(62 . 7)))) ;change 62 value for color
(while (setq LastEnt (entnext LastEnt)) ;adds entitys to selection set SS
(ssadd LastEnt SS)
)
(command "_.chprop" SS "" "LA" layerName2) ; Change layer of the copied object(s)
(princ (strcat "\n" (itoa (sslength SS)) " Objects Copied to layer " layerName2 "."))
)