Zwischen Userform hin und her wechseln
#1
Guten Morgen Zusammen, 

ich habe mehrere Userforms als Eingabeformulare, wo sich durchgeklickt wird. Bisher habe ich am Ende immer nach einem sub "Inhaltecheck" das nächste Formular durch show also, userform1.show geöffnet. 
Das ist auch weiterhin gut, nur kann ich nicht durch die gleiche Funktion bereits geöffnete Userforms die ja hintereinander liegen nochmal anzeigen lassen.  "Laufzeitfehler 400 Formular wird bereits angezeigt und kann daher nicht gebunden dargestellt werden."
Welche andere Möglichkeit gibt es da? Hatte an activated gedacht, klappt aber auch nicht. 
Da die Eingaben in den Formularen auch noch nicht gelöscht werden sollen, ist ein schließen des vorderen Formulars auch keine Option. 

Außerdem benötige ich noch einen Code zum Schließen aller Userforms zum Ende. Bisher hatte ich einen Code, der leider ALLE offenen Excel Dateien schließt, dass ist auch noch nicht ganz ausgereift. 

Sub excel_schließen()
SendKeys "%{F4}", True
End Sub


Vielen Dank vorab. 

Gruß Soldblub
Antworten Top
#2
Auch Guten Morgen,

zum Schließen aller Userforms. Userforms schließen

Nachtrag:

zum ersten Problem: Du musst prüfen, ob die UF schon offen ist. Userform offen?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo Steffi, 

zu 2) Ich habe es mit 
Public Sub Schliessen()

    Dim objForm As UserForm

    For Each objForm In UserForms

        Unload objForm

    Next
End Sub


probiert. 
Da erhalte ich den Fehler 402: "Das oberste gebundene Formular muss zuerst geschlossen oder ausgeblendet werden"


zu 1) was mache ich mit dem vorab prüfen? Ich weiß ja dass sie offen sind. Gibt es eine andere Art des Anzeigen? ggf. hervorholen??? 

22   
Antworten Top
#4
Hier wäre gut zu wissen was du schon gebastelt hast.

Normalerweise würde ich sagen userforms mit .hide ausblenden und mit .show wieder zurückholen.

Hier könnte es aber auch Schwierigkeiten geben je nachdem ob ein userform Modal geöffnet wird, oder nicht.

Müsste man alles mal ausprobieren Smile
Antworten Top
#5
Hallo Soldblub,

mit UserForms arbeite ich recht oft. Hatte allerdings noch nie den Fall, dass ich in einem Projekt mehrere gebraucht habe. Man kann zum Beispiel mit Multiseiten arbeiten, das ist übersichtlicher und einfacher zu handhaben. Am besten lädst du mal deine Datei hoch, dann können wir sehen, was man machen kann.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
Hallo,

Code:
Sub prcX()

   If isFormLoaded("NameDeinerUserform") Then
      NameDeinerUserform.Hide
   Else
      NameDeinerUserform.Show
   End If

End Sub
Sub prcBeenden()
   Application.OnTime Now + TimeValue("0:0:01"), "Schliessen"
End Sub

'in einem allgemeinen Modul!!!!!!
Function isFormLoaded(ByVal strName As String) As Boolean
   Dim i As Integer
  
   isFormLoaded = True
   strName = LCase(strName)
   For i = 0 To VBA.UserForms.Count - 1
      If LCase(UserForms(i).Name) = strName Then Exit Function
   Next

   isFormLoaded = False
End Function
'auch das in einem allgemeinen Modul
Public Sub Schliessen()

    Dim objForm As UserForm

    For Each objForm In UserForms

        Unload objForm

    Next
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#7
Okay, hier mal eine bereinigte Vorversion,

Die Userform gehen aktuell von 2 zu 4 zu 1.
Ich habe den Code in Userform1 eingebaut und versuche das Userform4 wiederanzeigen zulassen.


Angehängte Dateien
.xlsm   Muster_VVT - Kopie.xlsm (Größe: 395,69 KB / Downloads: 2)
Antworten Top
#8
Hallo,

was ich da in der Datei sehe, bestätigt meine Auffassung, dass man das mit Multiseiten auf einem UserForm lösen kann.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#9
Hallo Klaus-Dieter, 

werde deinen Hinweis umsetzen,  und habe das gute Gefühl, das könnte mir noch das ein oder andere Problem zukünftig ersparen. 
Hatte aus Faul- / und Gewohnheit einfach mehrere Userform miteinander verbunden, was bis jetzt - wo ich zurückgehen wollte- auch immer geklappt hat. 

Vielen Dank an Euch.

@auch an dich Stefan
Antworten Top
#10
Ich kann Klaus Dieter nur völlig zustimmen.
Mehrere Userforms ist nie eine gute Idee.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste