You can drive this process from SQL Server provided you have a suitable driver installed (all you need is the Jet Access driver - it understands Excel files too). You can set-up a query to insert data into named ranges in a spreadsheet directly from a SQL Server stored procedure or DTS task.
Check out this recent thread in the SQL Server forum
http://p2p.wrox.com/topic.asp?TOPIC_ID=7104 (it talks about transferring data the other way - from Excel to SQL - but the principle is the same).
If you want to do it via DTS you can set-up the Excel sheet as the destination and write a SQL query as the source.
Not sure about this bit "I also need to copy the formula if the insert function does not handle it." That may be something you have to do in your
VB app after the data transfer.
hth
Phil