|  
                                             
	Die gewöhnliche Input-Box-Funktion gibt immer eine Zeichenfolge zurück, die den Inhalt des Textfelds angibt. Egal, welche Schaltfläche gedrückt oder das Fenster sonst geschlossen wird. 
	Application.InputBox-Methode: 
	besitzt zusätzlich den Parameter Type um den Datentyp des Rückgabewertes vorab festzulegen. 
	Die MS-Dokumentation, egal welche Sprache dazu lautet: 
	"Wenn Sie auf die Schaltfläche Abbrechen klicken, gibt InputBox den Wert False zurück" 
	(If you click the Cancel button, InputBox returns False) 
	  
	Diese Beschreibung ist unzulänglich, denn False wird im vorgewählten Datentyp zurückgegeben. 
	  
Option Explicit
Sub IPB_2()
'Meaning - Text (a string)
Dim strInp As String
 
   strInp = Application.InputBox(prompt:="Eingabe", Type:=2)
   'ggf. LänderCode beachten
   If strInp = "Falsch" Then
      MsgBox ("Abbruch gedrückt mit ") & strInp
   Else
      Call MsgBox("Eingabe mit " & CStr(Len(strInp)) & " Zeichen", _
      vbInformation + vbOKOnly, "OK wurde gedrückt")
   End If
End Sub
Sub IPB_1()
'Meaning - A Number
Dim nmbInp As Integer
 
   'OK Button OHNE Eingabe führt immer zu Fehler
   Application.DisplayAlerts = False
   nmbInp = Application.InputBox(prompt:="Eingabe", Type:=1)
   'so bleibt die Abfrage bei leerer Eingabe im LOOP bis Abbruch
   Application.DisplayAlerts = True
   
   If nmbInp = 0 Then
      MsgBox ("Abbruch gedrückt mit ") & nmbInp
   Else
      Call MsgBox("Eingabe ist " & nmbInp, _
      vbInformation + vbOKOnly, "OK wurde gedrückt")
   End If
End Sub
Sub IPB_1_2()
'Meaning - Text (a string) or A Number
Dim nmbInp As Variant
 
   nmbInp = Application.InputBox(prompt:="Eingabe", Type:=2 + 1)
   
   If nmbInp = 0 Then
      MsgBox ("Abbruch gedrückt mit ") & nmbInp
   Else
      Call MsgBox("Eingabe ist " & nmbInp, _
      vbInformation + vbOKOnly, "OK wurde gedrückt")
   End If
End Sub
Sub CaseAbfrage()
'Meaning - Text (a string) or A Number
 
   Select Case Application.InputBox(prompt:="Eingabe", Type:=2 + 1)
      Case ""
         MsgBox "keine Eingabe"
      Case 1
         MsgBox "Eingabe war 1"
         'ggf. Aufruf der Prozedur zu 1 mit Parameter
         'Call Prozedur(1)
      Case 2 To 3
         MsgBox "Eingabe war 2 oder 3"
      Case "Test"
         MsgBox "Eingabe war " & "Test"
         'ggf. Aufruf der Prozedur
         'Call Test
      Case "Hammer"
         MsgBox "Eingabe war " & "Hammer"
         'ggf. Aufruf der Prozedur
         'Call Test("Hammer")
   End Select
End Sub
	Für den Fragesteller wäre es womöglich besser auf eine selbstgestrickte Userform auszuweichen! 
     |