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

MsgBox falls nicht 1,2 oder 3 und Goto Eingabe

MsgBox falls nicht 1,2 oder 3 und Goto Eingabe
07.02.2007 16:07:20
Ronny
Hallo VBA-Profis,
lese mir für diverse Berechnungen Daten von einem Tabellenblatt ins andere aus und muss für die Eingabe ein Datum nach der schreibweise TT.MM.JJ h:mm;@ vom Benutzer eingeben lassen und die Linie (1,2 oder 3) welche berechnet werden soll. Die Datum soll dann nach obiger Schreibweise in das Tabellenblatt "SRx manuell" in die Zelle C2 eingetragen werden, wonach dann automatisch Daten vom
Server zu diese Datum abgerufen werden. Das automatisch abrufen der Daten funktioniert bereits über ein AddIn, aber nur wenn die schreibweise TT.MM.JJ h:mm;@ eingehalten wird! Was mir also fehlt ist einfach eine Abfrage über einen Button "SRx_manuell_berechnen", welcher dann einaml das Datum in die Zelle C2 im Tabellenblatt "SRx manuell" einträgt und zum anderen eine Abbruchbedingung falls der Benutzer bei der Abfrage der Linie kein "1", "2" oder "3" eingibt.
Was passieren soll wenn man "1", "2" oder "3" eingibt funktioniert bereits in meinem CODE.
Mein bisheriger CODE:

Private Sub SRx_aktuell_berechnen_Click()
Dim wksQuelle As Worksheet, wksZiel As Worksheet
Dim SpalteZiel As Integer, SpalteQuelle As Integer, rngBereich As Range 'SpalteZiel2 As Integer,
Set wksQuelle = Worksheets("SRx manuell")
Set wksZiel = Worksheets("Input")
SpalteQuelle = 7
SpalteZiel = 4
' SpalteZiel2 = 14
Dim Frage As String
Frage = MsgBox("Wollen Sie wirklich alle Werte zum manuell gewählten Datum aus dem SRx für die nachfolgenden Berechnungen verwenden? Alle Input-Daten werden aktualisiert!", [vbYesNo])
If Frage = vbNo Then
Exit Sub
Else
If vbclose Then Exit Sub 'Abbrechen geklickt oder nichts eingegeben
Dim I As Long, Linie As Boolean 'neu
' Call getMoreSpeed(True)  'Beschnleuniger aufrufen
'Kessel bzw. Linie abfragen
Eingabe:
Linie = Val(InputBox("Bitte geben Sie die gewünschte Liniennummer an!", _
"Für die jeweilige Linie bitte nur 1, 2 oder 3 eingeben"))
'''Hier fehlt noch die Abbruchbedingung wenn nicht 1, 2 oder 3 eingegeben wurde, hab leider da nix sinnvolles zu stande bekommen. Kann mir an der Stelle wer helfen?
MsgBox "Es wurde keine gültige Linie ausgewählt!" & vbLf & vbLf _
& "Bitte nur die Zahlen 1,2 oder 3 für die jeweilige Linie eingeben!", vbCritical
On Error GoTo 0
GoTo Eingabe
If Linie = "1" Then
... funktioniert
Else
If Linie = "2" Then
... funktioniert
Else
If Linie = "3" Then
... funktioniert
End If
End If
End If
End If
End Sub

Kann mir bitte wer Helfen eine Abbruchbedingung wenn nicht "1", "2" oder "3" eingeben wurde und die oben angesprochen Datumseingabe nach der schreibweise TT.MM.JJ h:mm;@ in den CODE zu implementieren???
Mfg,
Ronny

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Absicherung InputBox
07.02.2007 17:55:29
Luc:-?
Hallo Ronny,
erst mal nur zu deiner InputBox-Eingabe (vielleicht erübrigt sich dann Weiteres)...

Const Warnung As String = "Sie sollten doch 1...3 eingeben!"
Dim WarnDef As String
Eingabe:
Linie = Val(InputBox("Bitte geben Sie die gewünschte Liniennummer an!", _
"Für die jeweilige Linie bitte nur 1, 2 oder 3 eingeben", WarnDef))
If Linie < 0 Or Linie > 3 Then
WarnDef = Warnung: GoTo Eingabe
Else WarnDef = ""
End If
... 

Außerdem gehört OnError GoTo an den PgmAnfang nach den Dim-Befehlen (die gehören alle an den PgmAnfang!); und warum GoTo 0? Hier kannst du doch eine Fehlerbehandlung anschließen. So ein Fehler entsteht evtl, wenn ein ganz Schlauer ein nichtnumerisches Zeichen in die InputBox eingibt (wegen der umschließenden Val-Fkt - warum nicht CBool, wenn das doch ein Wahrheitswert wdn soll und warum dann 1...3 - es gibt nur 2 Wahrheitswerte 0 und -1?).
Des weiteren würde ich statt der 3 fktd If...Then...End If-Abfragen eine If...Then...ElseIf...Then...Else...End If- oder Select Case...Case...End Select-Konstruktion wählen.
Da solltest du doch noch mal gründlich die VB-Editor-Hilfe studieren, um hier etwas Ordnung reinzubekommen.
Gruß Luc :-?
Anzeige
AW: Absicherung InputBox
12.02.2007 09:48:00
ronny
Hi Luc,
danke für die Hilfe, habs mit select Case probiert und denke eine andere gute Lösung damit gefunden.
Gruß,
Ronny

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige