Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Bereich per INPUTBOX markieren und auswerten
05.06.2008 15:07:35
NoNet
Hallo Leute,
per Application.InputBox("Text",Type:=8) kann man (ähnlich eines RefEdit-Steuerelementes) einen Tabellenbereich markieren .
Sofern man tatsächlich einen Bereich markiert, kann man diesen als RANGE-Objekt weiter verarbeiten, sihe Code :
Sub AuswahlPerInputbox()
    Dim rngZelle As Range
    Set rngZelle = Application.InputBox("Bitte Zelle auswählen", Type:=8)
    MsgBox rngZelle.Address
End Sub
Mit welchem Code kann man jedoch reagieren, wenn diese Inputbox abgebrochen wird ?
Dann bricht das Makro mit einer Fehlermeldung ab. Das kann man zwar per On Error Resume Next unterbinden, ist allerdings alles andere als elegant .
Nun habe ich schon versucht dies über eine temp. VARIANT-Variable und Auswertung per TYPENAME(TempVar) zu lösen, aber es ist mir leider nicht gelungen .
Kann mir bitte jemand auf die Sprünge helfen (OHNE "On Error...." !).
Danke, Gruß NoNet
PS : Dazu angetrieben wurde ich durch folgende Fragen :
https://www.herber.de/forum/messages/983617.htm
http://www.ms-office-forum.net/forum/showthread.php?t=233062l

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich per INPUTBOX markieren und auswerten
05.06.2008 15:51:00
NoNet
Danke Nepumuk,
Beispiel3 war genau das, was ich suchte (auch die anderen beiden Code-Beispiele sind interessant).
Auf den Umweg per Collection wäre ich selbst wohl als letztes gekommen.
Habe nun nur das von mir verhasste "Exit Do" und "Exit Sub" durch eine Boole'sche Abbruchbedingung ersetzt, so sieht der Code nun aus :

Sub Beispiel3()
'Bereich per Application.Inputbox markieren und auswerten
'http://www.office-loesung.de/ftopic232480_0_0_asc.php&sid=42aa3a86b36a838eee5062afe393bba7#921820
'12.08.2008, Nepumuk
Dim objRange As Range
Dim bolCancel As Boolean 'ergänzt von NoNet, 05.06.2008
Dim objRangeCollection As Collection
Set objRangeCollection = New Collection
bolCancel = False 'ergänzt von NoNet, 05.06.2008
Do
objRangeCollection.Add 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)
bolCancel = True 'ergänzt von NoNet, 05.06.2008
ElseIf IsEmpty(objRangeCollection(objRangeCollection.Count)) Then
MsgBox "Objektzuweisung fehlgeschlagen. Bitte nochmal versuchen", _
vbCritical, "Fehlermeldung"
ElseIf Not objRangeCollection(objRangeCollection.Count) Then
bolCancel = True 'cancelbutton pressed - ergänzt von NoNet, 05.06.2008
Else
MsgBox "Fehler " & CStr(vbObjectError) & vbLf & vbLf & _
"Unbekannter Objektfehler beim zuweisen eines Bereiches.", _
vbCritical, "Fehlermeldung"
bolCancel = True 'ergänzt von NoNet, 05.06.2008
End If
Loop Until bolCancel
MsgBox "Bereich " & objRange.Address & " markiert"
End Sub


Gruß, NoNet

Anzeige
AW: Bereich per INPUTBOX markieren und auswerten
05.06.2008 16:04:00
Nepumuk
Hallo NoNet,
ist ja niedlich, so hast du die Fehlermeldung von der Inputbox zur Msgbox verlagert. Denn wenn du auf Abbrechen drückst, oder bei der Bereichszuweisung ein Fehler passiert, dann ist objRange ja Nothing und die Abfrage der Adresse erzeugt einen Fehler 91 (Objekt ist leer).
Und, wozu eigentlich die Zuweisung False an die boolsche Variable? Das ist doch sowieso ihr Defaultwert nach der Initialisierung. In anderen Sprachen z.B. Assembler ist so etwas notwendig, aber doch nicht in VB.
Gruß
Nepumuk

OK, OK - hatte das zuerst getestet...
05.06.2008 16:22:56
NoNet
Hey Nepumuk,
heute gibste mir aber echt was auf meine viel zu warme Mütze ;-)
Das "Exit Sub" hatte ich erst nach dem Testen entfernt...
Habe jetzt ein intCancel (mit Werten 0,1,2) anstatt bolCancel eingebaut und das funktioniert einwandfrei :-)
Die DEFAULT-Wertzuweisung habe ich aus reiner Ordentlichkeit vorgenommen - wohlwissend, dass eine Boole'sche Variable standardmässig den Wert FALSE beinhaltet.
Danke nochmal, Salut, NoNet
Anzeige

304 Forumthreads zu ähnlichen Themen


Hallo, ich habe eine Frage an dich. Du hast mir die Formel erstellt in A16.
Ich habe die Datei mal hochgeladen und in Blatt "Beispiel" Spalte A etwas hereingeschrieben.
Danke für deine Hilfe.
Gruß Oblivion
https://www.herber.de/bbs/user/54685.zip
Anzeige

Hallo!
Mit "Label140.Caption = ListBox9.ListCount" kann ich die eingetragenen Zeilen in einer Listbox zählen und in einem Label eintragen lassen.
Ist es möglich, in einer merhspaltigen ListBox Einträge in einer Spalte z.B. Spalte 8 zu zählen.?
Wenn ja, wie würde hier bitte eine VBA...

Hallo,
ich lauf gerade wieder mal mit einem Brett vorm Kopf rum und hoffe, mir kann einer hier helfen.
Ich habe in einer Zelle mehrere Werte stehen, die jeweils durch Semikolon getrennt sind (bis zu 15).
Wie kann ich per VBA eine Schleife erstellen, dass solange nach einem Wert gesu...
Anzeige

Hallo liebe Excelianer,
gibt es eine Formel, die die Anzahl verschiedener Zelleninhalte für einen Bereich ermittelt? Zum Beispiel wenn ich 15 Zellen hätte, in denen 3mal die 5 steht und 12mal die 7 steht. Da ja nur 2 verschiedene Werte in den 15 Zellen stehen, müsste also 2 herauskommen. Nu...

Guten Abend
Ich möchte mit Hilfe einer Funktion (z.B. yWert) abfragen, ob innerhalb einem benannten Bereich (z.B. "Zahlenteil") positive oder negative Werte in ausgeblendeten Zeilen enthalten sind. Falls dies zutrifft, sollte die Rückgabe der Tabellenname sowie die betreffenden Zelladressen...

Hallo liebe Forummitglieder,
ich habe ein Problem mit vergleichen von Zahlen.
Ich habe schon selbst probiert, aber das haut hinten und vorne nicht hin.
=WENN(ODER(B10=1;"100")WENN(B10=2;"200")WENN(B10=3;"300")WENN(B10=4;"400"))
Ich möchte wenn in B10 1 steht 100, bei 2 200, bei...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige