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

Inputbox: Schließkreuz auswerten + Sub beenden

Inputbox: Schließkreuz auswerten + Sub beenden
22.05.2008 13:39:12
Andreas
Hallo Herber Fans,
seit einiger Zeit arbeite ich mit Inputboxen. Ich hatte diese bisher immer so gestaltet, daß der Klick auf „Abbrechen“ zum Verlassen des Sub`s führte.
Heute soll nun eine neue Option hinzukommen. Wenn auf „Abbrechen“ geklickt wird, dann soll der Sub nicht verlassen, dafür aber der Wert der Inputbox auf „“ gesetzt werden.
Also muß ich das gänzliche Abbrechen des Sub`s über das Schließkreuz realisieren. Im Forum habe ich nur Hinweise bekommen, wie das für eine UserForm geht. In der Hilfe zur Inputbox wird darauf leider auch nicht eingegangen.
Geht der Abbruch über das Schließkreuz auch in einer Application.Inputbox? Evtl. auch über QueryClose (wie bei einer UserForm)?
Anbei der Code der Inputbox.


Sub InputBoxTest
On Error Resume Next
Set DruckZeile = Application.InputBox("Bitte die individuellen Wiederholungszeilen markieren:" & vbLf & _
"Abbrechen = Keine Wiederholungszeilen.", "Individuelle Wiederholungszeilen", "$A$1", Type:=8)
On Error GoTo 0
If DruckZeile Is Nothing Then
MsgBox "Es wird keine Wiederholungszeile eingerichtet."
DruckReferenz = ""
Else
DruckReferenz = DruckZeile.Address
end if
If die Inputbox über das Schließkreuz beendet wurde, then
Exit Sub
End If
End Sub



Ich habe auch probiert über Type = 8 + 1 Zahlen zuzulassen und dann die 0 über eine IF Abfrage auszuwerten. If Druckzeile = 0 Then Exit Sub.
Es kam zwar keine Fehlermeldung, aber funktioniert hat es auch nicht. Das Schließkreuz als Event auswerten zu können wäre jedoch mein Primärziel.
Vielen Dank für Eure Ideen in dieser Sache,
Grüße, Andreas Hanisch

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox: Schließkreuz auswerten + Sub beenden
22.05.2008 13:52:52
chris
Servus Andreas,
das müsste so gehen:
nachricht = InputBox...
If StrPtr(nachricht) = 0 then nachricht =""
Gruß
Chris

AW: Nachtrag
22.05.2008 14:04:00
chris
Servus Andreas,
kleine Anmerkung:
ich hatte überlesen, dass du schließen zulassen willst, über das Kreuz.
Beis strptr liefern aber beide (schließen und abbrechen) die 0 zurück, somit wird die Inputbox immer mit " besetzt.
Ich glaube nicht, dass du das willst.
Gruß
Chris

AW: Nachtrag
22.05.2008 14:17:05
Andreas
Hi Chris,
ich könnte mir auch vorstellen, daß man es ohne Schließkreuz realisiert, doch dazu müßte die Inputbox es auch akzeptieren, wenn sie leer gelassen wird.
Rangeeintrag = Option 1
Leer gelassen = Option 2
Abbrechen gedrückt, bzw. Schließkreuz = Option 3 (Exit Sub)
Ich bin immer noch am experimentieren, habe es bisher aber nicht zufriedenstellend hinbekommen. Gibt es keine Möglichkeit das Schließkreuz- Event abzufangen, bzw. separat vom Abbrechen auszuwerten?
Vielen, Vielen Dank.
Grüße, Andreas

Anzeige
AW: Nachtrag
22.05.2008 14:32:19
chris
Servus Andreas,
wie gesagt separat geht nicht, da StrPtr für beide Aktionen (schließen und abbrechen) einen vb-Nullstring zurückliefert.
Ich kenne keine andere Funktion, die eine Unterscheidung bewirken kann. Zum Trennen fällt mir nur eine als Uf dargestellte Inputbox ein.
Inputbox leer geht ja auch eben als Case oder If-Anweisung:
If nachricht = "" then nachricht = """" setzt natürlich voraus, dass ok gedrückt wurde.
Gruß
Chris

AW: bzw. so
22.05.2008 14:43:00
chris

Sub ttt()
nachricht = InputBox("Test")
If StrPtr(nachricht) = 0 Then
nachricht1 = MsgBox("Möchten sie das Makro beeenden?", vbExclamation + vbYesNo)
If nachricht1 = vbYes Then
Exit Sub
Else
nachricht = """"
GoTo weiter
End If
End If
weiter:
MsgBox "hier geht's weiter" & " " & nachricht
End Sub


Gruß
Chris

Anzeige
AW: kleine Einmischung
22.05.2008 14:47:02
Daniel
Hallo ihr beiden
ich glaube ihr redet grad ein bisschen aneinander vorbei, weil du übersehen hat, das Andreas die Typ:=8-Variante der Inputbox verwendet, und die unterscheidet sich ein bissen von ner normalen Inputbox.
Da wird kein String, sondern ne komplette Range übergeben.
bei dieser Art der Inputbox ist es auch nicht möglich, die Eingabe leer zu lassen, die Inputbox wiederholt sich selbständig so lange, bis eine korrekte Zellreferenz eingegeben wurde.
daher kann das mit dem StrPtr() auch nicht funktionieren.
Es gibt also nur folgende Varianten:
1. es wurde eine Zellreferenz eingegeben
2. es wurde abgebrochen (ob über Abbrechen oder Schließkreuz ist Jacke wie Jacke)
die einzige Möglichkeit, weiter zu differenzieren, wäre zu prüfen ob im Fall 1 tatsächlich eine Vollständige Wiederholungszeile eingegeben wurde, oder nur ne Einzelzelle.
wie das geht, steht aber in meinem anderen Beitrag.
Gruß, Daniel

Anzeige
AW: Inputbox: Schließkreuz auswerten + Sub beenden
22.05.2008 14:36:00
Daniel
Hallo
du kannst nicht differenzieren, ob die Inputbox über das Schließkreuz oder über Abbrechen geschlossen wurde.
das ist beides mal das gleiche, nur über einen anderen Schalter (so wie es in einem Hausflur auch mehrere Schalter für die gleiche Lampe in der Mitte gibt)
btw bevor du weiterprogrammierst, lies mal das hier: http://www.online-excel.de/excel/singsel_vba.php?f=4
ein Code zur Eingabe und Testen könnte so aussehen:
für Wiederholungszeilen müssen ja vollständige Zeilen eingegeben werden, daher die Zusätliche Prüfung.

Sub InputBoxTest()
Dim Druckzeile As Range
Dim DruckReferenz As String
On Error Resume Next
Set Druckzeile = Application.InputBox("Bitte die individuellen Wiederholungszeilen markieren:" & _
vbLf & _
"Abbrechen = Keine Wiederholungszeilen.", "Individuelle Wiederholungszeilen", "$A$1", Type:=8)
On Error GoTo 0
If Druckzeile Is Nothing Then
MsgBox "Es wurde Abgebrochen"
Else
If Druckzeile.Address  Druckzeile.EntireRow.Address Then
MsgBox "Es wurden unkorrekte Wiederholungszeilen eingegeben"
Else
DruckReferenz = Druckzeile.Address
MsgBox "Korrekte Eingabe der Wiederholungszeilen: " & DruckReferenz
End If
End If
End Sub


Gruß, Daniel

Anzeige
Wofür der ganze Zauber mit der Inputbox...
22.05.2008 14:46:00
{Boris}
Hi Andreas,
...greife auf das RefEdit-Steuerelement zurück. Leg es auf ein kleines Userform - und fertig ist das Ganze. Du kannst das noch mit ein paar Schaltflächen garnieren - aber vor allen Dingen kannst Du das Schließkreuz des Userforms auswerten.
Grüße Boris

AW: Wofür der ganze Zauber mit der Inputbox...
22.05.2008 15:07:32
Andreas
Hallo Chris, Daniel und Boris,
vielen Dank für Eure schnellen und fundierten Antworten. Ich habe einen Ansatz von Chris aufgegriffen und eine Extra Schleife eingebaut. Nun geht es. Vorerst... vorerst deshalb, weil ich heute zum Ersten mal überhaupt mir eine UserForm gebaut habe. Und zu meinem Erstaunen ging die Entwicklung auch ohne größere Fehler - und das zum Entscheidenden Teil, weil ich auf das im Forum gelernte zurückgreifen konnte. Ich werde dieses Problem erst einmal so beheben und dann mit etwas mehr Ruhe für diese Abfrage eine Userform kreieren, in der ich alle Buttons und das Schließkreuz einzeln auswerten kann.
Eine Frage hierzu: Kann man UserForms auch auf eine Eingabeform eingrenzen. Analog zu Type: =8 in der Inputbox?
Euch allen Danke für Euren Einsatz und noch einen schönen restlichen Donnerstag.

Anzeige
Das meinte ich ja mit...
22.05.2008 15:13:00
{Boris}
Hi Andreas,
...greife auf das RefEdit-Steuerelement zurück
Insofern beantwortet das Deine Frage
Kann man UserForms auch auf eine Eingabeform eingrenzen. Analog zu Type: =8 in der Inputbox?
Das RefEdit-Steuerelement (Reference-Edit = Eingabe eines Bezugs) ist genau dafür geschaffen worden.
Grüße Boris

AW: Das meinte ich ja mit...
22.05.2008 15:32:12
Andreas
Hi Boris,
konnte nun doch nicht warten und habe die ersten Gehversuche mit RefEdit in einem UserForm unternommen. Sieht spannend aus. Bin zuversichtlich, daß ich das hinbekomme.
Ein Wahnsinn, was VBA ermöglicht und ein Wahnsinn, daß es dieses Forum gibt.
Dank und Gruß, Andreas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige