Scusa, ho visto in questo link:
http://msdn.microsoft.com/it-it/library/xe736fyk(VS.80).aspx
che la funzione shell ha un parametro chiamato "wait" che se impostato a true attende il termine del programma.
Quindi ho scritto:
Shell ("programma.exe",,true)
però in questo modo mi restituisce un errore di sintassi.