barakuda Geschrieben 17. September 2002 Geschrieben 17. September 2002 Hallo FI's Ich habe in meiner Exceltabelle (Preisliste mit über 40 Tabellen) mehrere Makros erstellt (die auch funktionieren), die aber z.T. 1- 2 Minuten laufen. Da kommt es schon mal vor, dass der eine oder andere meint, der Rechner oder Excel selber habe sich aufgehängt und dann drücken sie "Escape" - was folgt ist eine Fehlermeldung. Ich möchte nun, dass sich das Makro beenden läßt (Exit Sub), sobald einer Escape oder bei einem Inputfenster die "Abbrechen"-Taste drückt. Hat von euch einer eine Lösung parat? Danke schon mal Barakuda Zitieren
progmaker Geschrieben 18. September 2002 Geschrieben 18. September 2002 Wie werden die Makros denn ausgeführt? Sind das irgendwelche Schleifen? Werden mehrere Makros hintereinander ausgeführt? Zitieren
lifeguard Geschrieben 18. September 2002 Geschrieben 18. September 2002 Boolsche Variable und mit nem Ascii-Code für die Escape-Taste müsste es doch gehen. Zitieren
boeglischwinger Geschrieben 18. September 2002 Geschrieben 18. September 2002 Arbeiten deine Makros im Hintergrund oder mit UserForms? Bei den Forms gibt es ein Event, das da heißt: "KeyPress". Da kannst du den Ascii-Wert der gedrückten Taste abfragen, und wenn diese mit "ESC" übereinstimmt, dein Proggi/Makro abschiessen bzw. beenden. Ob und wie genau das ohne Form geht, kann ich dir leider nicht sagen! Zitieren
barakuda Geschrieben 18. September 2002 Autor Geschrieben 18. September 2002 In den Makros sind teilweise Schleifen integriert, das Abbrechen soll aber vor dem Schleifendurchlauf möglich sein. Ein User sucht sich beispielsweise über eine Inputbox div. Zellen aus, diese werden dann an eine Wordvorlage weitergereicht und in vorhandene Textmarken eingefügt (Etiketten drucken) bevor er nun aber die asugewählten Daten an Word sendet, wird nochmal eine Msgbox eingeblendet, in der alle von ihm ausgesuchten Daten angezeigt werden. Wenn er auf OK drückt, startet der Rest vom Malro, wenn er auf ABbrechen drückt, soll das Makro benedet werden. Ich habe es mittlerweile selber hingekriegt, ob es richtig ist weiss ich nicht, aber es funktioniert. Ich habe folgenden Code benutzt: If NameDerMsgbox = vbOK Then - hier folgt der Rest des Makros - Else Exit Sub End If Ob das nun syntaktisch richtig ist oder nicht, weiss ich nicht. Die gleiche funktion benutze ich, wenn der User ein neues Tabellenblatt erstellt. Hierzu gibt es eine Vorlage eines Tabellenblattes, dieses wird kopiert und mittels Inputbox werden der Blattname, die Position, wo es eingegliedert werden soll, sowie über SVerweis mit Daten gefüllt. Auch hier funktioniert mein Code. Falls einer von euch aber eine bessere/sicherere Lösung weiss, bin ich gerne vereit, diese zu übernehmen. Barakuda Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.