Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

falscher Variablentyp bei Usereingabe

falscher Variablentyp bei Usereingabe
22.06.2006 10:42:25
Hans-Peter
Wunderschönen Guten Morgen aus Belgien (Antwerpen) von einem Neuling!
Ich möchte in einer InputBox Falscheingaben über den Variablentyp ausschließen.
Meine Variable -die ich mit der Eingabe füttere- ist vom Typ long. Integer geht nicht, weil die Zahl 999999 für integer zum Überlauf führt. Danach übergebe ich diesen Wert in eine Variable vom Typ variant (ohne extra zu deklarieren). Wenn ich jetzt Buchstaben- und Sonderzeicheneingaben verhindern will, wie muss ich dann den Var.Typ aus der InputBox abfragen? Ich erhalte immer eine Typenunverträglichkeit, einen Überlauf oder einen Laufzeitfehler, und mein Makro steigt mit dem Debugger aus! Hier meine Subroutine:
*******************************************************************************

Sub StartID-Abfrage ()
Dim start As Long
Dim startwert
Dim a%
Sheets("Tabelle3").Activate
retry:
start = InputBox("Bitte den Startwert angeben. ", "letzte ACT-ID", (99999 - a), 1)
If start <> vbformat Then 'hier liegt mein Haken
MsgBox "Nur ganzzahlige Eingaben zulässig!", vbOKOnly, "Eingabefehler"
GoTo retry
End If
startwert = CLng(start)
If startwert > (99999 - a) Then
MsgBox "ID zu groß!", vbOKOnly, "Eingabefehler"
GoTo retry
End If
End Sub

*******************************************************************************
Herzlichen Dank für die Hilfe!
HPM

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: falscher Variablentyp bei Usereingabe
22.06.2006 13:33:07
fcs
Hallo Hans-Peter,
die Inputbox gibt immer einen Textstring als Ergebnis zurück. Damit man auch den Abbrechen-Button abfangen kann muß start als Variant oder String deklariert werden.
Da mir nichts besseres eingefallen ist überprüfe ich die Eingabe durch Zeichenvergleich (nur Ziffern 0 bis 9 sind zulässig). Mit Val(start) wird der String aus der Inputbox in eine Zahl verwandelt.
Startwert sollte als Long deklariert werden, da die Eingabe in diesen Typ umgewandelt wird.

Sub StartID_Abfrage()
Dim start As Variant
Dim startwert As Long
Dim a%
Sheets("Tabelle3").Activate
retry:
start = InputBox("Bitte den Startwert angeben. " & vbLf & "Bitte nur ganze Zahlen!", "letzte ACT-ID", (99999 - a), 1)
If start = "" Then Exit Sub 'Abbrechen geklickt
'Eingabeüberprüfung
For iI = 1 To Len(start)
' nur Ziffern fürfen in Textbox eingegeben
Select Case Asc(Mid(start, iI, 1))
Case 48 To 57 'Ziffern 0 bis 9
'do nothing
Case Else
MsgBox "Nur ganzzahlige Eingaben zulässig!", vbOKOnly, "Eingabefehler"
GoTo retry
End Select
Next
'Startwert aus Eingabe berechnen
startwert = CLng(Val(start))
If startwert > (99999 - a) Then
MsgBox "ID zu groß!", vbOKOnly, "Eingabefehler"
GoTo retry
End If
End Sub

Anzeige
AW: falscher Variablentyp bei Usereingabe
23.06.2006 08:30:00
HPM
Dank Dir "fcs", im Moment bekomme ich nach dieser Methode immer eine Typenunverträglichkeit, egal was ich in der InputBox angebe, aber prinzipiell - die Ziffern 0 bis 9 abzuprüfen - das ist gar nicht so verkehrt, darüber muss ich nochmal ernsthaft nachdenken.
Ich danke Dir für Deine Mühe!
Gruß aus Antwerpen HPM!
AW: JuHu jetzt funtz's!!!
23.06.2006 08:38:05
HPM
Hi, ich hatte noch "mir selbst Einen gemacht", meine Variablendeklaration war Sch*****, das habe ich glattgezogen und siehe da, Dein Vorschlag läuft von A bis Z!!! Danke, hast mit zwei Tage Kopfzerbrechen gespart!!!
Gruß HPM
...vielleicht hört man sich ja mal wieder...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige