Makro zum Beenden aller anderen Makros

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Makro zum Beenden aller anderen Makros
von: Patrick
Geschrieben am: 17.05.2002 - 09:35:03

Hallo,

ich hätte da wieder ein Problem.

Ich habe in ein Formular mehrere Makros eingebunden. Es handelt
sich hierbei um Makros die die Eingabe in mehreren Feldern erzwingt. Die Makros hab ich so hinterlegt das sie aufgerufen werden wenn jemand die Datei speichert. Jetzt habe ich das Problem wenn jemand in dieses Formular reingeht und es ohne alle
Felder auszufüllen wieder verlassen will das er nicht mehr rauskommt. (ist ja auch irgentwie klar -> Erzwingung der Eingabe).

Ich bräuchte jetzt praktisch ein Makro das alle anderen deaktiviert und excel ohne Speicherung beendet. Diese Funktion
möchte ich nach Möglichkeit auf eine Schaltfläche legen.

Kann mir bitte bitte einer helfen !!!!!!!!! DRINGEND !!!!


nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Matthias V.
Geschrieben am: 17.05.2002 - 10:12:52

Guten Morgen!

Habe ich das richtig verstanden, dass Du eine Art "Abbrechen"-Button haben möchtest?

Wenn ja, dann füge einfach einen CommandButton ein.

Hinterlege einfach folgende Zeilen:

Private Sub CommandButton1_Click()

Unlaod UserForm

End Sub

Ich hoffe, dass das Dir ein wenig weiterhilft!

Gruß

Matthias V.

nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Patrick
Geschrieben am: 17.05.2002 - 10:30:43

Hallo Matthias,

ne leider funktioniert das nicht so !!!!

Ich versuchs nochmal zu erklären:
Habe ein Formular mit mehreren Feldern die ausgefüllt werden müssen. So habe jetzt in VBA für jedes Feld ein Makro in "Diese Arbeitsmappe" mit Befehl Workbook_BeforeClose angelegt. Wenn nun
jemand versucht das Formular abzuspeichern geht eine MdgBox auf mit dem Inhalt das das jenige Feld nicht ausgefüllt ist und geht
wieder zurück zum Formular. Diese Prozedur läuft so lange bis alle "Muß-Felder" ausgefüllt sind - erst dann kann gespeichert werden.

Jetzt habe ich das Problem:
Wenn jemand in dieses Formular reingeht es ausfüllt und zwischenzeitlich merkt das er es gar nicht braucht und einfach
Excel beenden will kommt er nicht raus - weil immer die Prüfung durchgezogen wird. D.h. es erscheinen immer diese Fenster - und
da der Nutzer nichts eintragen will kommt er auch nicht raus.

Ich wollte nun eine Schaltfläche im Formular einfügen die es dem
Nutzer ermöglicht wenn er eben bemerkt das er das Formular nicht ganz ausfüllen will einfach auf diesen Button zu klicken und das Formular somit beenden (ohne Eingabe aller Felder) kann.

Ich denke die Schaltfläche müßte wohl die Funktionen

"Prüfmakro" deaktivieren +
Beenden Excel

enthalten.

Wäre spitze wenn du mir helfen könntest.

Danke im voraus

Patrick


nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Matthias V.
Geschrieben am: 17.05.2002 - 11:19:01

Man könnte es höchstens so machen, dass man direkt am Anfang den Anwender fragt, ob er "Änderungen" vornehmen möchte:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim antwort

antwort = MsgBox("Wollen Sie Änderungen vornehmen?", vbYesNo, "Ädnderungen vornehmen?")
If antwort = vbYes Then
'hier können nun die Makros ablaufen
End If

End Sub

Bringt Dich das evtl. weiter?

Gruß

Matthias V.

nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Patrick
Geschrieben am: 17.05.2002 - 11:35:17

Ne leider wieder nicht !!!

Habe mir schon gedacht das das etwas knifflig ist !!!

Patrick


nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Matthias V.
Geschrieben am: 17.05.2002 - 11:39:18

Hmmm... langsam bin ich mit meinem Latein am Ende!

Was genau passiert denn, wenn Du alle Makros in die If-Abfrage einbaust? Werden sie trotzdem ausgeführt?


Gruß

Matthias V.


nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Patrick
Geschrieben am: 17.05.2002 - 12:01:30

So schaut mein Makro aus:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Worksheets("Auftragsformular").Range("L4") = "" Then
MsgBox ("Der Text"0, "Bezeichnung Dialog-Box"
Cancel = True
End If
.
.

Habe ca. 10 Stück hintereinander. Das funktioniert wunderbar aber eben das rauskommen. Hab dir ja die Problematik geschildert.

Patrick

nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Matthias V.
Geschrieben am: 17.05.2002 - 12:07:51

Also, ich meinte das so, dass Du alles in die If-Abfrage einbaust, etwa so:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim antwort

antwort = MsgBox("Wollen Sie Änderungen vornehmen?", vbYesNo, "Ädnderungen vornehmen?")
If antwort = vbYes Then
If Worksheets("Auftragsformular").Range("L4") = "" Then
MsgBox ("Der Text"0, "Bezeichnung Dialog-Box"
Cancel = True
End If
End If

End Sub


Kann das evtl. passen?

Gruß

Matthias V.

nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Patrick
Geschrieben am: 17.05.2002 - 12:21:53

Ne leider hat deines nicht funktioniert !!!!

Aber ich habe was gefunden:

Ich hab einfach aus dem Workbook_BeforeClose ein _BeforeSave gemacht und schon ist es möglich auch vorher abzubrechen.

Jetzt kann ich einfach eine Schaltfläche machen und die mit einem Excel beenden Makro belegen.

Kannst du mir den Code dafür sagen !!! Ein ganz einfaches Makro
zum Beenden von Excel.

nach oben   nach unten

Re: Makro zum Beenden aller anderen Makros
von: Matthias V.
Geschrieben am: 17.05.2002 - 12:44:51

Reicht es auch, wenn nur die ganze Arbeitsmappe geschlossen wird?

Dann heißt das:

Workbooks(Name).close


Gruß

Matthias V.

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Makro zum Beenden aller anderen Makros"