Try to add one more parameter to your procedure
alter procedure sp_test
@dt_start date
,@dt_end date
,@need_params_back bit = 0 -- new param
as
begin
if @need_params_back = 0
begin
-- here is your code, for example:
select 1 as value
union all
select 2
end
else
begin
-- returning your params
select
@dt_start as dt_start
,@dt_end as dt_end
end
end
And call it twice in excel:
first time (let's name it Q1) with need_params_back = 1,
{call dbo.sp_test(?,?,1)}
you don't need here to map parameters to cells, let user input them.
second time (let's call it Q2) - as in your question.
{call dbo.sp_test(?,?,0)}
and map parameters to results of our first query (Q1).
But using such approach leads you to data refresh order, because you firstly need to update Q1 and only after you get results, update Q2 and all your other connections.
I hope, I've understood you correctly.