Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1452to1456
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
Inhaltsverzeichnis

Zellbereich selektieren mit Applicaton.Inputbox

Zellbereich selektieren mit Applicaton.Inputbox
26.10.2015 16:00:45
Esmo
Moin!
Der Benutzer soll einen Zellbereich selektieren. Wenn ich dafür Application.Inputbox verwende, möchte ich die zwei Fälle abfangen, daß der Benutzer entweder "Abbrechen(Cancel)" drückt oder ohne etwas eingegeben zu haben, "OK"drückt.
Nach diversen Suchen im Netz habe ich folgendes versucht:

Dim answer as variant
Dim dzell as range
answer = Application.InputBox("Please select the cells of the table for the autofilter:", " _
Which table?", , , , , , 8)
If answer  False Then
If answer = "" Then
MsgBox "You selected nothing - aborting!", vbOKOnly + vbInformation
Exit Sub
Else
Set dzell = answer
End If
Else
MsgBox "You cancelled - aborting!", vbOKOnly + vbInformation
Exit Sub
End If

dann kann ich zwar "Abbrechen" und die leere Eingabe abfangen, aber wenn ich einen Bereich _ selektiere, macht er mir einen Typ-Mismatch. Wenn ich dann mit

On Error Resume Next
arbeite, muß ich auch mit

Application.Displayalerts=False

arbeiten, weil er sonst einen Fehler bei dem Versuch der leeren Eingabe bringt - und zwar einen in Excel, den ich nicht abfangen kann.
Hat mir jemand einen Tipp, wie ich das lösen kann?
Gruß
Ralph

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

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich selektieren mit Applicaton.Inputbox
26.10.2015 16:48:57
Daniel
Hi
OK ohne Eingabe eines Zellbereichs fängt das System für dich automatisch ab.
der Anwendern kann die Inputbox nur verlassen, wenn er entweder ABBRECHEN klickt oder OK klickt und einen Zellbereich ausgewählt hat.
bei OK ohne eine Auswahl eines Zellbereichs kann der Anwender die Inputbox nicht verlassen, sondern er wird zu einer erneuten Eingabe aufgefordert, aber das macht VBA selbst, dass musst du nicht programmieren.
da du einen Zellbereich auswählst, musst du diesen auch mit SET der Variable zuweisen:

Dim answer as Range
on Error Resume Next
set answer = Application.Inputbox("...", Type:=8)
On Error Goto 0
if answer is Nothing then
Msgbox "Abbruch"
Exit sub
else
set dzell = answer
End if
Gruss

Anzeige
AW: Zellbereich selektieren mit Applicaton.Inputbox
26.10.2015 18:39:21
Nepumuk
Hallo,
das geht auch ohne On Error - Anweisung:
Public Sub test()
    Dim objRange As Range
    Dim objRangeCollection As Collection
    Set objRangeCollection = New Collection
    Do
        Call objRangeCollection.Add(Item:=Application.InputBox(Prompt:= _
            "Bitte die Quellspalte(n) markieren", Title:="Auswahl", Type:=8))
        If TypeOf objRangeCollection(objRangeCollection.Count) Is Range Then
            Set objRange = objRangeCollection(objRangeCollection.Count)
            Exit Do
        ElseIf IsEmpty(objRangeCollection(objRangeCollection.Count)) Then
            MsgBox "Objektzuweisung fehlgeschlagen. Bitte nochmal versuchen", _
                vbCritical, "Fehlermeldung"
        ElseIf Not objRangeCollection(objRangeCollection.Count) Then
            Exit Sub 'cancelbutton pressed
        Else
            MsgBox "Fehler " & CStr(vbObjectError) & vbLf & vbLf & _
                "Unbekannter Objektfehler beim zuweisen eines Bereiches.", _
                vbCritical, "Fehlermeldung"
            Exit Sub
        End If
    Loop
    Set objRangeCollection = Nothing
    MsgBox "Bereich " & objRange.Address & " markiert"
End Sub

Gruß
Nepumuk

Anzeige
AW: Zellbereich selektieren mit Applicaton.Inputbox
26.10.2015 22:36:40
Esmo
Hallo Nepomuk,
heißt das, in diesem Fall sorgt also die Call Collection.Add Anweisung dafür, daß Excel ohne Fehlermeldung weitermacht und ich das Ergebnis dem Resultat (Status der Collection) entnehmen kann, korrekt?
Ist natürlich eleganter als die On Error, die sowieso nicht ganz funktioniert.
Gruß
Ralph

AW: Zellbereich selektieren mit Applicaton.Inputbox
27.10.2015 07:29:58
Nepumuk
Hallo,
die Meldung von Excel wenn du nichts ausgewählt hast und trotzdem auf OK klickst kann ich damit auch nicht unterdrücken. Aber die Collection frisst erst mal alles. Teste es einfach mal.
Gruß
Nepumuk

AW: Zellbereich selektieren mit Applicaton.Inputbox
26.10.2015 18:46:01
Esmo
Moin!
Die Zuweisung habe ich gemacht, aber ich wollte eigentlich unterscheiden, ob jemand "Cancel" drückt oder nicht. Die Fehlermeldung im Excel ist auch total irreführend, von wegen "Eingegebene Formel falsch etc.".
Dann muß ich mich damit begnügen, daß ich einfach nicht unterscheiden kann, was passiert ist.
Es gibt im Netz diese Abfragen mit

answer = False
bzw.

answerfalse
, aber da bekomme ich einen Type-Mismatch (Err.NO 13), wenn ich etwas eingebe. Das will ich ja auch nicht.
Vielen Dank Daniel, dann mache ich wie Du geschrieben hast.
Gruß
Ralph
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige