Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mal ein kleines Problem

mal ein kleines Problem
23.02.2018 10:12:43
Burak
Moin,
ich versuche die Abbruchfunktion der InputBox aufzufangen

Dim linie As String, barcode As Integer
'Usereingabe für Linie
linie = InputBox("Bitte geben Sie die Linienbezeichnung ein!")
'Abbruchfunktion
If linie = "Falsch" Or linie = "" Then Exit Sub
'Usereingabe für Barcode
barcode = InputBox("Bitte geben Sie den gewünschten Barcode ein!")
If barcode = "Falsch" Or barcode = "" Then Exit Sub
Bei der linie funktioniert es, aber nicht beim Barcode. Welcher Wert wird denn für eine Integer-Variable vergeben, wenn die InputBox abgebrochen wird?
Danke und liebe Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mal ein kleines Problem
23.02.2018 10:26:46
Robert
Hallo Burak,
die Inputfunktion liefert immer einen String-Wert zurück. Dieser muss bei Bedarf anschließend erst mit CInt() umgewandelt werden. Bei Klicken auf Abbruch wird eine Null-Zeichenfolge ("") geliefert.
Gruß
Robert
AW: mal ein kleines Problem
23.02.2018 10:30:58
Burak
Danke schonmal für den Hinweis!
Erster Versuch:
barcode = CInt(InputBox("Bitte geben Sie den gewünschten Barcode ein!"))
Zweiter Versuch:

Dim linie As String, barcode As Integer, bartest As String
bartest = InputBox("Bitte geben Sie den gewünschten Barcode ein!")
barcode = CInt(bartest)
funktionieren beide nicht :(
Anzeige
AW: mal ein kleines Problem
23.02.2018 10:42:51
Robert
Hallo,
bei folgendem Code
bartest = InputBox("Bitte geben Sie den gewünschten Barcode ein!")
If bartest = "" Or Not IsNumeric(bartest) Then Exit Sub
barcode = CInt(bartest)

wird das Makro abgebrochen, wenn Du auf Abbrechen klickst oder die Eingabe in die Inputbox nicht numerisch ist. Ansonsten geht das Makro weiter.
Gruß
Robert
AW: mal ein kleines Problem
23.02.2018 10:28:38
EtoPHG
Hallo Burak,
Am einfachsten mal die VBA-Hilfe zu InputBox nachlesen. Da wirst du sehen, dass die Inputbox immer eine Wert vom Typ String zurückgibt. Darum ist deine Frage nach Integer-Wert obsolet.
VBA mach implizite Typen-Conversionen, d.h. wenn du im Barcode z.B. "A" eingibst, wirst du in eine Fehler laufen.
Also String lesen (wie bei linie) und programmatisch analysieren, ob es sich um einen gültigen Integer-Wert handelt. Siehe z.B. CIint(string) TypenUmwandlungs-Funktion.
Gruess Hansueli
Anzeige
AW: mal ein kleines Problem
23.02.2018 10:37:30
Burak
Also so?

'Usereingabe für Barcode
bartest = InputBox("Bitte geben Sie den gewünschten Barcode ein!")
If bartest = "" Then Exit Sub
barcode = CInt(bartest)
Funktioniert. Danke euch beiden :*
AW: mal ein kleines Problem
23.02.2018 10:45:30
fcs
Hallo Burak,
die VBA-Inputbox liefert immer Text als Ergebnis.
Deshalb muss die Variable der man ie Eingabe zuweist vom Typ String oder Variant sein.
Falls du die Eingabe als Zahl benötigst, dann musst du den Text konvertieren.
Alternativ kann man mit Appliation.InputBox arbeiten. Hier kann die Eingabe über den Parameter Type eingeschränkt werden.
Gruß
Franz
Sub aa()
Dim linie As String, barcode As Variant
'Usereingabe für Linie
linie = InputBox("Bitte geben Sie die Linienbezeichnung ein!")
'Abbruchfunktion
If linie = "" Or linie = "Falsch" Then Exit Sub
'Usereingabe für Barcode
barcode = InputBox("Bitte geben Sie den gewünschten Barcode ein!")
If barcode = "Falsch" Or barcode = "" Then Exit Sub
If IsNumeric(barcode) Then
barcode = CLng(barcode)
End If
End Sub
Sub ab()
Dim linie As String, barcode As Long
'Usereingabe für Linie
linie = InputBox("Bitte geben Sie die Linienbezeichnung ein!")
'Abbruchfunktion
If linie = "" Or linie = "Falsh" Then Exit Sub
'Usereingabe für Barcode
barcode = Application.InputBox("Bitte geben Sie den gewünschten Barcode ein!", Type:=1)
If barcode = 0 Then Exit Sub
End Sub

Anzeige
AW: mal ein kleines Problem
23.02.2018 11:18:45
Luschi
Hallo Burak,
so erzielt man eine Zahl als Ergebnis:

Sub test()
Dim v As Variant
v = Application.InputBox("Bitte eine Zahl eingeben", , , , , , , 1)
Debug.Print VarType(v) = vbDouble   ' True
End Sub
Gruß von Luschi
aus klein-Paris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige