Bien, en ese caso son otros los pasos a seguir.
1 - En el Editor insertá un Userform, dejá dejá su propiedad ShowModal en False. Colocá un control Label
2 - El código que debes colocar en el Userform es el siguiente (ajustando nombre de tu macro principal y tiempo para mostrar mensaje antes de llamar al proceso)
Private Sub UserForm_Activate()
'x Elsamatilde
Application.Wait Now + TimeValue("00:00:02") '2 segundos... ajustar a gusto
'luego de 2 segundos comenzará el proceso (ajustar nombre de macro)
Call macroLibro
End Sub
3- El botón que ya tenés para llamar a la macro debe contener solo estas instrucciones.
Sub Button1_Click() 'botón que llama al proceso principal
'ejemplo de Elsamatilde
'se llama al UF con un mensaje personalizado
UserForm1.Label1.Caption = "A continuación se ejecutará la macro xxxxx"
UserForm1.Show
'NOTA: EL Userform debe tener su propiedad showmodal en false
End Sub
4- Y la macro principal, que en mi ejemplo se llama 'macroLibro' tendrá instrucciones adicionales al final:
Sub macroLibro()
'proceso principal: aquí solamente rellena una hoja
Sheets(2).[A1] = Now()
For i = 1 To 1000
Sheets(2).Range("A" & i) = Now + (10 * i)
Next i
'envía el mensaje de fin al uf
UserForm1.Label1.Caption = "Finalizó el proceso de la macro xxxxx"
Application.Wait Now + TimeValue("00:00:02") '2 segundos... ajustar a gusto
'se cierra el uf
Unload UserForm1
End Sub
Retirá las 1ras 4 instrucciones de mi ejemplo, dejando allí todo tu proceso, que por supuesto debe terminar en este libro y en esta hoja donde se está mostrando el uf.
Si necesitas el ejemplo podés solicitarmelo a alguno de mis correos.
Y si necesitas 'personalizar un poco más tu formulario deja nuevas consultas en el tablón iniciando el mensaje con el texto 'Para Elsa' así las encuentro.
Nota: si vas a tener varios procesos utilizarás el mismo UF al que solo le tendrás que enviar un mensaje para cada situación.
Si esta opción resuelve tu consulta agradeceré mejores tu valoración atento al tiempo dedicado a ella.