2.7k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Hi!

Kurze Frage:
Kann mir jemand den Unterschied zwischen
Application.InputBox
und
InputBox
erklären?

Leider musste ich feststellen, dass man unter "promt"
unterschiedlich lange Texte verwenden kann.

Bei Application.InputBox kann man offensichtlich
ein InputBoxArgument z. B. Type:=1 für "nur Zahlen" mitgeben.
Dies wäre für mich eine brauchbare Lösung, jedoch wird der "Zusatztext" im Gegensatz zum Befehl Inputbox abgeschnitten.
Anmerkung:
Inputbox im Zusammenhang mit Type:=1 funktioniert wohl nicht, oder?

Ansonsten habe ich unter
www.supportnet.de/listthread/1058498
den Befehl "IsNumeric()" gefungen.

Danke für die Antworten.

Tom

8 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Tom,

Du hast es richtig erkannt bei Application kann ein Typ mitgegeben werden.
Dein Problem mit dem abschneiden kann ich nicht testen, da Du den Code nicht gepostet hast.

Gruß Hajo
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo Hajo!

Das ging ja schnell. DANKE!

Hier ein Muster:
Sub test()

Versuch01 = Application.InputBox("1-123456789" & vbLf & _
"2-123456789" & vbLf & _
"3-123456789" & vbLf & _
"4-123456789" & vbLf & _
"5-123456789" & vbLf & _
"6-123456789" & vbLf & _
"7-123456789" & vbLf & _
"8-123456789" & vbLf & _
"9-123456789" & vbLf & _
"0123456789", , Type:=1)
End Sub

Nach 5-123456789 ist Schluss.

Ciao

Tom
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Tom,

bei mir wird allles angezeigt.

Gruß Hajo
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Mahlzeit

Und so
www.pic-upload.de/view-2410190/Printscreen01.jpg.html
sieht es bei mir aus.

Office 2003 - SP 3

Tom
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Tom,

ich gehe mal davon aus, dass Hajo mit Excel 2007 arbeitet. Dort wird alles angezeigt. Bei Excel 2003 nicht. Eine Erklärung hierzu habe ich auch nicht, da darüber in der Hilfe nichts steht, aber eventuell ist das nur auf x Zeichen begrenzt und bei Excel 2007 haben sie das wie auch andere Sachen um ein vielfaches erhöht.

Wenn es Dir allerdings darum geht, dass alles in der InputBox angezeigt wird, aber nur Zahlenwerte zulässig sind, dann versuche doch mal folgendes Makro.

Sub test()
Dim Versuch01 As Variant
Anfang:
Versuch01 = InputBox("1-123456789" & vbLf & _
"2-123456789" & vbLf & _
"3-123456789" & vbLf & _
"4-123456789" & vbLf & _
"5-123456789" & vbLf & _
"6-123456789" & vbLf & _
"7-123456789" & vbLf & _
"8-123456789" & vbLf & _
"9-123456789" & vbLf & _
"0-123456789")
'Wenn Abbrechen-taste betätigt
If Versuch01 = "" Then Exit Sub
'Wenn kein numerischer Wert
If Not IsNumeric(Versuch01) Then
MsgBox "Erlaubt sind nur Zahlen", vbCritical, "falsche Einagbe..."
GoTo Anfang
End If

MsgBox Versuch01

End Sub

Hier geht‘s nur weiter, wenn eine Zahl eingetragen wird.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hallo Oliver!

So ähnlich habe es auch nunmehr umgesetzt.
Anstatt Variant habe ich jedoch string verwendet.
Ich weiss, da gibt es Unterschiede aber ich bin noch nicht
wirklich dahintergekommen, WAS genau WANN Verwendung
finden soll.
Um ehrlich zu sein - bin ich mit der "Hilfe" zum Teil ein wenig
überfordert.

Vielleicht melde ich mich wegen der anderen heutigen Fragestellung nochmals (bei Dir).
Es gibt da noch eine kleine "Ungereimtheit".
Möglicherweise finde ich aber erst nächst Woche Zeit dafür.

Wünsche allseits noch einen schönen Tag.

Tom
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Tom,

eine Variable mit dem Typ String verwendet man überall dort, wo es um Text geht. Typ Integer wenn es um Ganzzahlen von -32.768 bis 32.767, Typ Long wenn es um Ganzzahlen von -2.147.483.648 bis 2.147.483.647, Typ Double wenn es um Zahlen mit Nachkommastellen geht, Typ Variant wenn es um einen Mix aus Double und String, also entweder Zahlen oder Text geht.

Wie Du siehst, hat jeder Typ seine Bestimmungen. Wenn Du z.B. nun also eine Zahl aus einer Zelle mit einem Variablenwert des Typs String, also Text" vergleichst, wirst Du nie eine Übereinstimmung finden, da die beiden Typen unterschiedlich sind.

Ich hoffe, Du hast ein wenig verstanden, auf was es ankommt und dass man versuchen sollte bei der Variablendeklaration den richtigen Typ zu wählen. String ist auf jeden Fall nicht immer die beste Wahl. Dann eher der Typ Variant.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Wunderschönen Guten Morgen Oliver!

Herzlichen Dank für Deine tolle Beschreibung.
Hoffe, dies nunmehr in Zukunft berücksichtigen zu können.

Schönes erholsames Wochenende!

Tom
...