Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenverlust bei Abbruch eines UserForms

Datenverlust bei Abbruch eines UserForms
03.05.2007 16:15:14
Polarfuchs
Hallo Ihr Checker,
ich habe eine Tabelle, in der Fußballergebnisse eingetragen werden. Ich weise die vorhandenen Ergebnisse den TextBoxes als Value zu. Dann kann eingegeben werden und dann werden die Textbox.Values wieder den Zellen als Value zugewiesen. Das funktioniert auch so weit. ABER wenn ich das UserForm mit der "X" - Schaltfläche abbreche sind alle Daten weg.
Mein Frage:
Gibt es eine Möglichkeit, wenn ein UserForm mit der "X" - Schaltfläche abgebrochen wird, dass man das in der Sub erkennt und dann an der Stelle die Sub abbricht, damit die Sub die leeren Vokablewerte nicht wieder den Zellen zuweist.
Für einen Tipp wäre ich sehr dankbar.
Ciao Polarfuchs.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenverlust bei Abbruch eines UserForms
03.05.2007 16:19:00
Matthias
Hallo PF,
du kannst das Schließkreuz so abfangen:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
'X wurde gedrückt
MsgBox "Bitte regulär Beenden!"
Cancel = True
End If
End Sub


Gruß Matthias

Leider funktioniert meine Schaltfläche nicht mehr
03.05.2007 16:31:49
Polarfuchs
Hallo Matthias,
danke für den Tipp. Die Abfrage funktioniert. ABER ich habe auf dem UserForm eine Schaltfläche mit der ich die Eingabe beende. Die Schaltfläche hat nur UserForm1.Hide in der Sub. Wenn ich die Abfrage so, wie Du geschrieben hast einfüge, dann ist der Wert für CloseMode = Leer, auch wenn ich mit der Schaltfläche beende und die Daten überschrieben werden sollen. Was kann ich tun, dass die Schaltfläche die UserForm so beendet, dass der CloseMode Wert nicht leer ist?
Danke Polarfuchs

Anzeige
AW: Leider funktioniert meine Schaltfläche nicht m
03.05.2007 16:36:57
Matthias
Hallo PF,
die Prozedur ist ein Ereignis, das beim Entladen (z.B. zurch Unload Me) ausgelöst wird.
Ich verstehe dein Problem nicht, bei Me.Hide wird das doch gar nicht ausgelöst.
Gruß Matthias

AW: der CloseMode-Wert ist immer leer
03.05.2007 16:44:58
Polarfuchs
Hallo Matthias,
das UserForm1 wird während einer Prozedur, die durch eine Schaltfläche in der Tabelle aufgerufen wurde, mit UserForm1.Show gestartet. Ich habe nun in der nächsten Programmzeilen die If CloseMode = 0 Abfrage stehen.
Mein Problem ist, dass nun, egal ob ich das UserForm1 mit der "X" - Schaltfläche oder mit der von mir vorgesehenen Schaltfläche beendet der CloseMode-Wert immer leer ist. Ich bräuchte es aber so, dass der CloseMode-Wert nur dann leer oder 0 ist, wenn ich mit der "X"-Schaltfläche abgebrochen habe. Wenn ich das UserForm mit meiner erstellten Schaltfläche beende, sollte der CloseMode-Wert ein anderer sein.
Ich kanns nicht besser erklären, da ich mich in VBA nur so autodidktisch durchwurschtle und dass meine ersten Gehversuche mit UserForms sind.
Ciao Polarfuchs

Anzeige
AW: der CloseMode-Wert ist immer leer
03.05.2007 16:52:58
Matthias
Hallo Polarfuchs,
ok, also die Prozedur UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) muss genau so heißen, es ist eine Ereignisprozedur, ähnlich wie z.B. CommandButton1_Click().
Du darfst den Code also nicht in eine andere Prozedur übertragen, sondern musst ihn so stehenlassen. Wenn dann das UF geschlossen werden soll, wird vorher die Prozedur ausgeführt. In CloseMode steht die Art des Schließens (durch Schließkreuz, durch Makro, durch Taskmanager usw.), und wenn man Cancel=True setzt, wird das Schließen des UF unterbunden.
Wenn du also das Schließkreuz genauso behandelt haben willst wie CommandButton1_Click, dann so:

'Button zum Schließen
Private Sub CommandButton1_Click()
Me.Hide
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
Cancel = True
CommandButton1_Click
End If
End Sub


Gruß Matthias

Anzeige
AW: Das war die Lösung - Danke
03.05.2007 17:30:00
Polarfuchs
Hallo Matthias,
es hat zwar ein wenig gedauert, bis ich durchgeblickt habe, aber ich habe es hin bekommen. Danke nochmal für die Geduld und die Mühe.
Ciao Polarfuchs :-))

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige