Hi steve427,
welcome to the forum

Function nonzerotext(listpos As Integer, List As Range) As String
no need for private as it "Indicates that the Function procedure is accessible only to other procedures in the module where it is declared." VBA help
and to return the value in one sting
nonzerotext = List([rowcounter], [firstcolumn]) & nonzerotext