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
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
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
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
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
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
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
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
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
Gruß Primut
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:
Gruß
@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.SelectGruß

