Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
296to300
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
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Script -> userform_terminate funzt überhaupt nich!

Script -> userform_terminate funzt überhaupt nich!
21.08.2003 12:01:45
Joachim
Guten Tag,
ich hänge gerade daran, meinem Usern zu verbieten einfach so abzubrechen. Das Script, das ich entsann, funzt aber überhaupt nich!
Wenn ich nämlich bei der ersten msgbox auf Ok klickem kommt zwar das Userform wieder, aber es lässt sich nicht mehr bearbeiten!
Und wenn ich in der msgbox auf abbrechen klicke geht er nicht zur nächsten msgbox sondern schließt einfach das workbook. Danach stürzt Excel immer ab, egal, was für ein workbook ich öffne.
Keine Ahnung woran das alles liegt, vielleicht findet ihr nen paar schlimme Fehler, oder habt ein paar Belehrende Worte für mich. Hier erstmal das Script:

Private Sub UserForm_Terminate()
Dim abbr
abbr = MsgBox("Wenn Sie abbrechen, werden alle Eintragungen gelöscht! Um die _
Abfrage correct zu beenden klicken sie bitte die Schaltfläche _
'Datenbankeintrag berechnen & speichern'!", vbExclamation + vbOKCancel + _
vbDefaultButton2, "Wirklich abbrechen?")
If abbr = vbOK Then
pdbAbfrageForm.Show
Else
Workbooks("PDBForm.xls").Close SaveChanges:=False
Dim beenden
beenden = MsgBox("Soll Excel auch gleich beendet werden?", vbYesNo + _
vbQuestion + vbDefaultButton2, "Beenden?")
If beenden = vbYes Then
Application.Quit
End If
End If
End Sub

Ich bin über jeden Hinweis sehr dankbar, sonst muss ich nämlich das Feature aus der Form löschen.
Vielen Dank schon mal im Vorraus und schönen Gruß (besonders an den Typen der gestern wissen wollte, wie an dieses Excel auf einen HeimPC startet), Joachim

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Script -> userform_terminate funzt überhaupt nich!
21.08.2003 12:24:51
ChrisL
Hi Joachim
> Wenn ich nämlich bei der ersten msgbox auf Ok klickem kommt zwar das Userform wieder, aber es lässt sich nicht mehr bearbeiten!
Wie meinst du 'lässt sich nicht mehr bearbeiten'? Habe mal kurz zum Test folgenden Code probiert...

Private Sub UserForm_Terminate()
UserForm2.Show
End Sub

Userform2 öffnet sich und ich konnte z.B. in einer Textbox weiterschreiben. Konnte den Fehler also nicht nachvollziehen.
> Und wenn ich in der msgbox auf abbrechen klicke geht er nicht zur nächsten msgbox sondern schließt einfach das workbook.
If abbr = vbOK Then
...
Else
Workbooks("PDBForm.xls").Close SaveChanges:=False
...
Sobald also Else zur Anwendung kommt wird das WB geschlossen und die Makros laufen nicht weiter. Persönlich würde ich prüfen, ob nur dieses eine WB geöffnet ist und je nach dem, nur die einzelne Mappe oder die ganze Application schliessen, also Frage 2 'automatisieren'.
If Workbooks.Count = 1 Then
Workbooks("PDBForm.xls").Saved = True
Application.Quit
Else
Workbooks("PDBForm.xls").Close SaveChanges:=False
End If
Unter umständen würde es sich empfehlen, anstelle eines Terminate Ereignisses ein UserForm_QueryClose zu nehmen. Mit dieser Methode kannst du mit Cancel = True am Anfang den eigentlichen 'Schliessvorgang' abbrechen und nachher das Schliessen selber programmieren, was vermutlich weniger Konflikte gibt.
Schliesslich solltest du unterscheiden zwischen UF.Show/UF.Hide und Load/Unload. Hide blendet lediglich aus, bzw. Show ein. Sauberer ist es wie folgt...
Load Userform1
Userform1.Show
Unload Userform1
Load Userform2
Userfrom2.Show
Gruss
Chris

Anzeige
Vielen Dank
21.08.2003 12:41:19
Joachim
Jo, das Hilft mir erst mal ordentlich weiter.
Vielen Dank, ich will sehen, das ich alles verwerten kann und schönen Gruß aus Berlin, Joachim

wenn du grad noch Zeit hast ...
21.08.2003 13:27:49
Joachim
Also, das eine Problem konnte ich behaben, aber leider hänge ich weiter an Folgenden:
>> Wenn ich nämlich bei der ersten msgbox auf Ok klickem kommt zwar das Userform wieder, >>aber es lässt sich nicht mehr bearbeiten!
>Wie meinst du 'lässt sich nicht mehr bearbeiten'? Habe mal kurz zum Test folgenden Code >probiert...
>Private Sub UserForm_Terminate()
>UserForm2.Show
Vielleicht liegt bei mir das Problem daran, das ich dasselbe Userform lade?
Mit nicht mehr bearbeiten meine ich, das in Excel nichts mehr "anklickbar" ist. Das Programm ist wie abgestürzt, weil "hinter" die Userform komme ich nur, wenn ich das Kästechen mit dem Kreuz (ich weiss immernoch nicht den richitgen Namen) oder eine meiner Schaltflächen drücke. Diese reagieren dann alle aber nicht mehr auf einen Mauskick. Im Script wäre das diese Stelle:
Dim abbr
abbr = MsgBox("...", vbExclamation + vbOKCancel + vbDefaultButton2, "Wirklich abbrechen?")
If abbr = vbOK Then
Load pdbAbfrageForm
pdbAbfrageForm.Show
Stimmt immernoch was nicht mit dem Script oder liegt es an Excel?
Vielleicht hast du noch ne Idee, wenn nicht, nicht schlimm, Dankeschön und schönen Gruß, Joachim

Anzeige
AW: wenn du grad noch Zeit hast ...
21.08.2003 13:50:50
ChrisL
Hi Joachim
Dass du das selbe UF lädst wusste ich nicht. Dies geht natürlich nicht, bzw. führt verständlicherweise zum Absturz.
Mach eine
UserForm_QueryClose
Cancel = True
Etwa so...
Option Explicit

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim abbr
abbr = MsgBox("Wenn Sie ..", vbExclamation + vbOKCancel + vbDefaultButton2, "Wirklich abbrechen?")
If abbr = vbOK Then
Cancel = True
Else
If Workbooks.Count = 1 Then
ThisWorkbook.Saved = True
Application.Quit
Else
ThisWorkbook.Close SaveChanges:=False
End If
End If
End Sub

Gruss
Chris

Anzeige
Super, Danke
21.08.2003 14:07:54
Joachim
Jo, super.
Das war genau das richtige Ereignis, das mir fehlte! Ich brauch echt mal ne Documentation, die alle Methoden, Ereignisse, usw. mal vollständig beleuchtet. Die HTML-Leute hamms ja so gut!
Schönen Gruß und vielen Dank nochmal, Joachim

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige