Unter Allgemein habe ich die Variable Speicher auch so definiert
Was genau meinst Du mit " Unter Allgemein", bzw. „Allgemein“ von welcher UserForm oder welchem Modul?
Vielleicht wäre es interessant für Dich, wenn Du UserForm4 eine eigene Eigenschaft verpaßt. Das könnte, wenn wir jetzt 'mal beim Datentyp String bleiben, folgendermaßen aussehen:
Code für UserForm4
Private meinAufrufVon As String
Public Property Get AufrufVon() As String
AufrufVon = meinAufrufVon
End Property
Public Property Let AufrufVon(ByVal Name As String)
meinAufrufVon = Name
End Property
Private Sub ButtonZurueck\_Click()
Me.Hide
Select Case meinAufrufVon
Case UserForm2.Name
UserForm2.Show
Case UserForm3.Name
UserForm3.Show
End Select
End Sub
Code für UserForm2 und auch UserForm3
Private Sub ButtonWeiter\_Click()
Me.Hide
UserForm4.AufrufVon = Me.Name
UserForm4.Show 'vbModal
End Sub
Mir ist aufgefallen, dass Du in Deinem Code die Anweisung „UserFormX.Hide“ verwendest. Nur als Hinweis: Mit Hide wird ein Formular nicht entladen, es wird bloß ausgeblendet. Wenn Du ein Formular entladen willst, mußt Du die Anweisung „Unload [Object]“ verwenden.