RE:como parar/hacer esperar código
¿ No te sirve hacer que el segundo formulario aparezca de forma modal? Eso hace que el código del programa espere a que el formulario llamado se descargue antes de proseguir. Si no es así, entonces puedes utilizar una variable indicadora que pondrás con un valor "Verdadero" antes de iniciar la espera. El formulario llamado, en el evento Unload, pondrá dicha variable con valor "Falso"; mientras tanto, el código del primer formulario habrá estado en espera en un bucle así:
While indicador
DoEvents
Wend
Esto tiene el peligro de que si el formulario llamado "se muere", entonces el bucle jamás terminará. Otra posibilidad es que hagas búsquedas en la colección Forms; esta colección tiene tantos componentes como formularios hay cargados en un momento dado, numerados a partir de 0; cada componente devuelve una referencia a un formulario. Comprobando la propiedad Name para cada componente puedes saber en todo momento que formularios hay cargados:
Dim i As Integer
For i = 0 To Forms.Count - 1
Debug.Print Forms(i).Name
Next i
Solución que te propongo:
1- El formulario que debe esperar activa una variable