Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Bereichsauswahl über Inputbox





Frage

Hi VBA Experten, ich probiere gerade über eine Inputbox einen Bereich per direkter Zellauswahl einzugeben. Vom Prinzip her erstmal so: [code]Dim ber As Range Set ber = Application.InputBox(Prompt:="Bereichseingabe", Type:=8)[/code] Mit [code]ber.Address[/code] kann ich nun die Bereichsadresse abfragen, soweit so gut. Folgende Probleme / Fragen: Die Inputbox hat ja auch ein Abbruch - Button, der bei Betätigung allerdings einen Fehler erzeugt, ich hätte aber gerne das Abbruch-Kriterium abgefragt ohne das blöde On [code]Error Goto[/code] benutzen zu müssen. Bei der Eingabe kann ich tatsächlich zwischen den Tabellenblättern wechseln (sind eigentlich auch Bereichseingaben in externen Tabellen möglich, wenn ja wie?) allerdings weiß ich nicht, wie ich dann auch noch das Blatt zusätzlich zur Adresse abfragen kann, wo der Bereich eingegeben wurde. Gibt es auch Möglichkeiten solcher Bereichseingaben in Userformen statt in Input-Boxen? Besten Dank für die Hilfe Primut

Antwort 1 von CaroS

Hallo Primut,

die Frage ist ja mal ein echter Knaller! Viel konnte ich da noch nicht rauskriegen (rausgoogeln) außer der wenig überraschenden Erkenntnis: Andere haben da auch bzw. ähnliche Probleme:

http://www.pcreview.co.uk/forums/thread-1010317.php

Es scheint so, dass da aber was über Userforms zu machen ist. Schau Dir mal die VBA-Hilfe zum RefEdit-Steuerelement an, vielleicht hilft Dir das?

Gruß,
CaroS

Antwort 2 von CaroS

vergessen:
http://www.pcreview.co.uk/forums/thread-982860.php

Antwort 3 von Primut

Hi CaroS,

besten Dank für deine Mühe,
Wird wohl wieder auf das übliche hinauslaufen: probieren und den besten Kompromiss auswählen.
Schade, mir schwebte von der Sache her eigentlich nicht nur eine funktionierende, sonder auch eine optisch ansprechende, elegante Lösung im Kopf herum, na ja, mal schauen..

Thx
Gruß Primut

Antwort 4 von Primut

Hi CaroS,

mit RefEdit-Steuerelement war zumindest ´ne sehr gute Idee zum weiterprobieren, könnte vielleicht was werden....;-)))
Thx,

Gruß Primut

Antwort 5 von nighty

hi all :)

eine variante

gruss nighty

Option Explicit
Sub MeineInputbox()
Eingabe
End Sub
Public Function Eingabe()
Dim Zeichen As Variant
Zeichen = InputBox(Prompt:="Bereichseingabe")
If StrPtr(Zeichen) = 0 Then
Rem code fuer abbrechen
Else
If Zeichen = "" Then
Rem code fuer nichteingabe
Else
Rem code fuer eingabe
End If
End If
End Function

Antwort 6 von nighty

hi all :)

noch ein wenig weitergefuehrt :)

gruss nighty

Option Explicit
Public Index As Integer

Sub DeinMakro()
Eingabe
If Index = 0 Then
If Index = 1 Then
If Index = 2 Then
End Sub

Public Function Eingabe()
Dim Zeichen As Variant
Dim test As Integer
Zeichen = InputBox(Prompt:="Bereichseingabe")
If StrPtr(Zeichen) = 0 Then
Index = 0
Else
If Zeichen = "" Then
Index = 1
Else
Index = 2
End If
End If
End Function

Antwort 7 von nighty

hi all :))

kann gelöscht werden muss aber nicht grrr

Dim test As Integer

gruss nighty

Antwort 8 von CaroS

Hallo Primut,

damit keine Langeweile aufkommt, hier noch was zu lesen:
39 Treffer in http://www.excelforum.com/ bei der Suche nach inputbox range type=8
(www.excelforum.com/search.php?searchid=314694 .. q=+inputbox+range+type%3D8)

z. B.
http://www.excelforum.com/showthread.php?t=493780
http://www.excelforum.com/showthread.php?t=372903
http://www.excelforum.com/showthread.php?t=377887
http://www.excelforum.com/showthread.php?t=341223

Passt aber alles nur mehr oder weniger (eher weniger).

Schönes Wochenende!
CaroS

Antwort 9 von Primut

Hi nighty,

ja klar,thx,
meine Idee war aber, den Zellbereich nicht per Hand sondern einfach per Zellmarkierung einzugeben.
Das funktioniert aber bisher nur mit der
 Application.InputBox
, bloß das mir dort solche Abfragen nicht bekannt sind.

Gruß Primut

Antwort 10 von fürLau

Hallo

@Primut
Nachdem ich auch einen halben Tag lang erfolglos, nach einer Lösung des Application.InputBox problems gesucht habe, denke ich, Du bist mit dem RefEdit-Steuerelement bestens bedient. Sonst bliebe nur noch ein Konstrukt wie:

Dim ber As Range
On Error Resume Next
Set ber = Application.InputBox(prompt:="Bereichseingabe", Type:=8)
Debug.Print "Err = "; Err.Number; Error
If Err.Number <> 0 Then Exit Sub
Debug.Print ber.Address
ber.Select


Gruß

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: