Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
332to336
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
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wie geht sowas ohne goto?

wie geht sowas ohne goto?
06.11.2003 18:14:03
Andi
Liebes Forum,

ich hatte mir hier vor ein paar Tagen recht plausibel erklären lassen, warum goto in einem vernünftigen code nix verloren hat, und hatte darufhin Besserung gelobt.

Nun habe ich einen Programmteil, in dem die Zulässigkeit einer Eingabe (Zahl zwischen 0 und 255) überprüft und die Eingabe ggf. beliebig oft wiederholt werden soll. Dies habe ich bislang mittels goto realisiert:

eingabe:

eingabe = InputBox("Geben Sie eine Dezimalzahl zwischen 0 und 255 ein:")
If eingabe = "" Then Exit Sub
dezimal = Val(eingabe)
dez = dezimal

If dezimal < 0 Or dezimal > 255 Then
MsgBox "Die Zahl liegt außerhalb des gültigen Bereiches." + Chr(13) + "Wiederholen Sie die Eingabe."
GoTo eingabe
End If

[...]

Da ich ja goto eigentlich in Zukunft vermeiden wollte, würde ich jetzt gerne wissen, wie man das anders machen kann (wie gesagt, kaum VBA-Kenntnisse).

Schönen Gruß
Andi

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

Betreff
Datum
Anwender
Anzeige
AW: wie geht sowas ohne goto?
06.11.2003 18:34:07
PeterW
Hallo Andi,

das sollte mit einer Do-Loop Schleife machbar sein:

Do
eingabe = InputBox("Geben Sie eine Dezimalzahl zwischen 0 und 255 ein:")
If eingabe = "" Then Exit Sub
dezimal = Val(eingabe)
dez = dezimal

If dezimal < 0 Or dezimal > 255 Then
MsgBox "Die Zahl liegt außerhalb des gültigen Bereiches." + Chr(13) + "Wiederholen Sie die Eingabe."
End If
Loop Until dezimal >=0 and Dezimal <= 255

Gruß
Peter
AW: wie geht sowas ohne goto?
06.11.2003 18:34:24
Nepumuk
Hallo Andi,
so:


Option Explicit
Public Sub ttt()
Dim eingabe As Variant
Do
eingabe = Application.InputBox("Geben Sie eine Dezimalzahl zwischen 0 und 255 ein:", "Eingabe", Type:=1)
If eingabe = False Or Trim(eingabe) = "" Then Exit Sub
eingabe = Val(eingabe)
If eingabe >= 0 And eingabe <= 255 Then Exit Do
MsgBox "Die Zahl liegt außerhalb des gültigen Bereiches." & Chr(13) & String(14, " ") & "Wiederholen Sie die Eingabe.", 48, "Hinweis"
Loop
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
Danke ...
06.11.2003 18:47:27
Andi
... euch beiden für die schnellen Antworten.
Wieder was gelernt :-)

Schönen Gruß
Andi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige