Thank you very much for your interest. However, I am still in deep trouble, but I still believe the problem lies in the interface Access/Excel.
Usin ByVal in the sub declaration did not change anything.
Your doubt about the excel file being really opened, at this point, is not meaningful, because the code in NOT executed, due to the compile error. However, just to make sure, I tried the following: I declared xlValues as a constant with its enumeration value:

Const xlValues as Integer = -4163

and added the instruction

xlApp.visible = True

With these changes, the compile error disappeared, the code gets executed but the file is not updated. With a breakpoint just before the rowNo = ... line, I was able to look at the opened file and discovered that the file is the right one, but is opened ReadOnly, and that is probably why it does not get the updates. By the way, from what I have read, the default should NOT be Read Only.
Anyhow, at this point the obvious correction seems to be:

Set xlBook = xlapp.Workbooks.Open(ExcelPath & "LibroSoci.xls", ReadOnly=False)

but unfortunately we are back to square 1: now I get Compile error, variable not defined, for ReadOnly. It looks like Access does not know about excel objects, but the Excel 16.0 object library is included in the references.
Thanks again for your attention. Forgive my English, I am writing from Italy
Roberto