Thema Datum  Von Nutzer Rating
Antwort
17.10.2016 14:45:24 Enra1337
NotSolved
17.10.2016 14:56:58 Crazy Tom
NotSolved
17.10.2016 15:26:15 Enra1337
NotSolved
17.10.2016 15:27:08 Crazy Tom
NotSolved
17.10.2016 15:30:05 Crazy Tom
NotSolved
18.10.2016 08:00:45 Enra1337
NotSolved
17.10.2016 16:00:51 Gast70117
NotSolved
19.10.2016 11:42:53 Gast33406
NotSolved
19.10.2016 11:43:41 Enra1337
NotSolved
19.10.2016 22:39:27 Nobody
NotSolved
19.10.2016 22:49:22 Nobody
NotSolved
Blau Suche + Abbruch Programmieren
20.10.2016 09:24:31 Gast70117
NotSolved

Ansicht des Beitrags:
Von:
Gast70117
Datum:
20.10.2016 09:24:31
Views:
752
Rating: Antwort:
  Ja
Thema:
Suche + Abbruch Programmieren

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!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.10.2016 14:45:24 Enra1337
NotSolved
17.10.2016 14:56:58 Crazy Tom
NotSolved
17.10.2016 15:26:15 Enra1337
NotSolved
17.10.2016 15:27:08 Crazy Tom
NotSolved
17.10.2016 15:30:05 Crazy Tom
NotSolved
18.10.2016 08:00:45 Enra1337
NotSolved
17.10.2016 16:00:51 Gast70117
NotSolved
19.10.2016 11:42:53 Gast33406
NotSolved
19.10.2016 11:43:41 Enra1337
NotSolved
19.10.2016 22:39:27 Nobody
NotSolved
19.10.2016 22:49:22 Nobody
NotSolved
Blau Suche + Abbruch Programmieren
20.10.2016 09:24:31 Gast70117
NotSolved