anyway, i tried to reference, and it wouldnt even give me the empty box this time. it says "ambiguous name detected"!
In VB editor, right click the VBA Project (default name), click Properties and change the name. So it will not collide.
By having just one code I do not mean that you copy it into the workbooks (though this is also possible). What I rather mean is that if the code in all those 20 sheets is identical, it's much better to have one master sheet with the code that works on all the other workbooks in a loop.
E.g. this will open C:\test1.xls and enter today's date in Sheet3, A1. The same with Test2.xls or any other workbook that is in the specified folder and whose name you stack into y.
<pre><SPAN style="color:#00007F">Sub</SPAN> ManipWBs()
<SPAN style="color:#00007F">Dim</SPAN> myPath <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>, y <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> sh <SPAN style="color:#00007F">As</SPAN> Worksheet
<SPAN style="color:#00007F">Dim</SPAN> i <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
myPath = "C:\"
y = [{"Test1","Test2"}]
<SPAN style="color:#00007F">For</SPAN> i = <SPAN style="color:#00007F">LBound</SPAN>
<SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>
Workbooks.Open (myPath & y(i) & ".xls")
<SPAN style="color:#00007F">Set</SPAN> sh = ActiveWorkbook.Sheets("Sheet3")
sh.[A1] = Int(Now())
ActiveWorkbook.Close SaveChanges:=<SPAN style="color:#00007F">True</SPAN>
<SPAN style="color:#00007F">Next</SPAN> i
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></PRE>
Best regards
Martin