Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Inputbox f. Range läßt sich nicht abbrechen

Betrifft: Inputbox f. Range läßt sich nicht abbrechen von: Andreas Hanisch
Geschrieben am: 25.04.2008 18:18:17

Hallo Herber Fans,

ich habe ein Problem mit einer Application Inputbox, die einen Range abfragt. Bei zwei Inputboxen, die Long Werte abfragen, kann ich das Ereignis, daß auf „Abbrechen“ geclickt wird, sehr gut abfangen und sauber den Sub verlassen. Bei der Inputbox, die einen Range abfragt sind alle Versuche, dort ein geordnetes Verlassen des Sub zu erreichen bisher gescheitert.
Ich habe alle meine bisherigen Ansätze in einer Datei dargestellt. Auch im Forum habe ich bisher nicht den entscheidenden Hinweis gefunden, wie ich das „Abbrechen“ Event sauber feststellen kann.
Könnt ihr mir den Hinweis geben, woran das liegt?

https://www.herber.de/bbs/user/51874.xls

Vielen Dank und Grüße, Andreas

  

Betrifft: AW: Inputbox f. Range läßt sich nicht abbrechen von: Luschi
Geschrieben am: 25.04.2008 18:57:56

Hallo Andreas,

so sollte es klappen:

      On Error Resume Next
Set druckzeile = Application.InputBox("Bitte die Wiederholungszeilen markieren:" & vbLf & _
       "Abbrechen verläßt die Seiteneinrichtung.", "Wiederholungszeilen", Type:=8)
On Error GoTo 0
If druckzeile Is Nothing Then
    MsgBox "keine Wiederholungszeilen ausgewählt"
Else
    MsgBox "Wiederholungszeile(n): " & druckzeile.EntireRow.Address
End If

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Inputbox f. Range läßt sich nicht abbrechen von: Nepumuk
Geschrieben am: 25.04.2008 19:51:39

Hallo Andreas,

das geht ohne Probleme. Nur die Meldung, wenn nichts ausgewählt und auf Ok geklickt wurde lässt sich nicht abschalten.

Public Sub test()
    Dim objRangeCollection As Collection
    Dim objSource As Range
    On Error GoTo err_exit
    Set objRangeCollection = New Collection
    Do
        objRangeCollection.Add Application.InputBox(Prompt:="Bitte die Wiederholungszeilen markieren:" & _
            vbLf & "Abbrechen verläßt die Seiteneinrichtung.", Title:="Wiederholungszeilen", Type:=8)
        If TypeOf objRangeCollection(objRangeCollection.Count) Is Range Then
            Set objSource = objRangeCollection(objRangeCollection.Count)
            Exit Do
        ElseIf IsEmpty(objRangeCollection(objRangeCollection.Count)) Then
            MsgBox "Objektzuweisung fehlgeschlagen. Bitte nochmal versuchen"
        ElseIf Not objRangeCollection(objRangeCollection.Count) Then
            Exit Sub '// user press cancelbutton
        Else
            Err.Raise Number:=vbObjectError, _
                Description:="Unbekannter Objektfehler beim zuweisen eines Bereiches."
        End If
    Loop
    MsgBox objSource.Address
    Exit Sub
    err_exit:
    MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & _
        Err.Description, vbCritical, "Fehlermeldung"
End Sub

Gruß
Nepumuk


  

Betrifft: AW: Inputbox f. Range läßt sich nicht abbrechen von: Andreas Hanisch
Geschrieben am: 28.04.2008 10:04:32

Hallo Luschi, Hallo Nepomuk,

Dank für Eure guten Antworten. Ich habe beide Codes in meiner Beispieldatei kurz getestet und sie funktionieren. Das die Meldung, wenn nichts ausgewählt wurde bleibt, ist glaube ich eine feste Eigenschaft dieses Inputbox- Typs. Aber ich finde es schon erstaunlich, daß ich eine Messagebox die Ranges verarbeitet nicht auch über diese vbboolean Zeile sauber abbrechen kann.
Aber glücklicherweise habe ich von Euch ja nun eine Lösung.

Habt noch einen schönen Wochenstart und genießt das Wahnsinnswetter!

Grüße, Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "Inputbox f. Range läßt sich nicht abbrechen"