Variabel in nächste Form übergeben?

Hallo Leute, ich suche und suche im Internet und habe schon viel ausprobiert, aber ich bekomme es nich hin.

Es gibt eine UserForm2 und UserForm3 die paralell sind und beide zur UserForm4 gehen wenn man auf ein „Weiter“ Button drückt.

Mein Problem besteht darin, dass die UserForm4 ja nicht weiß auf welcher UserForm man vorher war, wenn man den Button „zurück“ drücken will.

Ich wollte das Problem so lösen, dass ich in der UserForm2 einen Speicher aktiviere, wenn ich dort auf „Weiter“ klicke dies passiert:

**Private Sub WeitervonuserForm2_Click()

Speicher = „1“ eben auf

End Sub**

Unter Allgemein habe ich die Variable Speicher auch so definiert:

Public Speicher As String

In der UserForm4, wollte ich den „zurück“ Button folgendes Maßen auslegen:

Private Sub zurueck3_Click()

If Speicher = 1 Then
UserForm4.Hide
Load UserForm2: UserForm2.Show

Else: UserForm4.Hide
Load UserForm3: UserForm3.Show

End If
End Sub

Doch ist der Speicher immer leer, also wird die Varialbe nicht übergeben…

könnt ihr mir weiter helfen?

Danke

Das eben auf gehört da nicht rein :wink:

Ach und unten hatte ich in der if Schleife auch die 1 in " " gesetzt, das war noch raus kopiert, weil ich es mit double,string usw probiert habe.

Benutze den Tag :smile:

Es gibt eine UserForm2 und UserForm3 die paralell sind und
beide zur UserForm4 gehen wenn man auf ein „Weiter“ Button
drückt.

Mein Problem besteht darin, dass die UserForm4 ja nicht weiß
auf welcher UserForm man vorher war, wenn man den Button
„zurück“ drücken will.

Ich wollte das Problem so lösen, dass ich in der UserForm2
einen Speicher aktiviere, wenn ich dort auf „Weiter“ klicke
dies passiert:

Hallo Darkness,

was genau suchst du?
Eine Lösung, also so wie ich das angehen würde oder Losung wie man
deinen Lösungsansatz zum Laufen bringen könnte?

Ich würde das so tun, in UF2 und UF3 jeweils diesen Code
für den Weiter-Button:

Private Sub CommandButton1_Click()
'Weiter
UserForm4.Tag = Me.Name
Me.Hide
UserForm4.Show
End Sub

Beim Zurück-Button in UF4 diesen Code:

Private Sub CommandButton1_Click()
'Zurück
Me.Hide
UserForms.Add(Me.Tag).Show
End Sub

Gerade für sowas ist für Eingeweihte diese „Tag“-Eigenschaft der UF
sehr geeignet.

Normalerweise, soll angeblich auch so in der Hilfe stehen (nicht nachgeprüft müßte man den Aufruf einer UF mit ihrem Namen auch so
machen dürfen:

UserForms(„Name der UF“).Show
Dieses geht aber nicht deshalb benutze ich da diesen Trick mit dem „.Add“, eher auch was von und für Eingeweihte.

UserForms.Add(„Name der UF“).Show

Gruß
Reinhard

Hallo Darkness.

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.

VG
Carsten