Hol.a
Necesariamente tendrías que guardar el nombre de los "UserForm" cada vez que se cierran. Para eso coloca esto en cada módulo de cada "UserForm" (no olvidar ni uno):
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
UserformActivo = Me.Name
Call CerrarUserform
End Sub
Luego coloca esto en un módulo "standard":
Option Explicit
Public UserformActivo As String
Sub AbrirUserform()
Dim frm As Object
Dim NombreUSerform As String
If Sheets("Hoja1").Range("A1").Value = "" Then
UserForm1.Show
Exit Sub
Else
NombreUSerform = Sheets("Hoja1").Range("A1").Value
Set frm = UserForms.Add(NombreUSerform)
frm.Show
End If
End Sub
Sub CerrarUserform()
Sheets("Hoja1").Range("A1").Value = UserformActivo
End Sub
Entonces para abrir el "primero" de los "UserForm" (que será el último cerrado) debes usar la macro "AbrirUSerForm". No olvides que estoy asumiendo que existe una "Hoja1" y que en su celda "A1" irá el nombre del último "UserForm" cerrado. Si es necesario esa hoja puede estar oculta, no hay problema.
Comentas
Abraham Valencia