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

Wieso Fehler ?

Wieso Fehler ?
01.09.2004 15:39:41
walter
Hallo Zusammen,
habe ein kleines Problem.
Ich möchte bei Eingabe eines Buchstabens das die MSG-Box erscheint, und anschließend die MSG-Box bei der Eingabe von Zahlen bzw. Werten größer als 4 !
Fehler:
Leider wird bei Eingabe an der 4.Stelle eines Buchstabens auch die Warnung ausgelöst. Bei der Eingabe der Zahl kann es an der 4.Stelle auch noch ein Buchstabe sein. !!!
Fehler 2:
Wenn ich eine Zahle größer als 4 eingebe keine Reaktion !
Hier mein Makro:

Private Sub TextBox1_Change()
Dim EingabeZahl As String
If IsNumeric(TextBox1) = False Then
Beep
MsgBox "Nur Zahlen erlaubt, kein Text !", vbCritical
TextBox1 = "0000"
If Len(TextBox1) > 4 Then
Beep
MsgBox "        Achtung " & Chr(13) & Chr(13) & _
"Verkäufer Nr. ist 4 stellig," & Chr(13) & Chr(13) & _
"bitte NEU eingeben !!!" & Chr(13), vbCritical
TextBox1 = "0000"
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Worksheets("Muster").Range("I2") = CDbl(TextBox1)direkt rein !
TextBox1 = Format(Worksheets("Muster").Range("I2").Value, ("0000"))
Label1.Caption = Worksheets("Muster").Range("I4")
End If
End If
End Sub

Hoffentlich kann mir jemand helfen oder einen Tip für mein Makro geben.
Gruss Walter MB

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

Betreff
Datum
Anwender
Anzeige
AW: Wieso Fehler ?
GerdZ
Hallo Walter,
Dein Code mit korrigierten Einzügen:
Private Sub TextBox1_Change()
Dim EingabeZahl As String
If IsNumeric(TextBox1) = False Then
Beep
MsgBox "Nur Zahlen erlaubt, kein Text !", vbCritical
TextBox1 = "0000"
If Len(TextBox1) > 4 Then
Beep
MsgBox "        Achtung " & Chr(13) & Chr(13) & _
"Verkäufer Nr. ist 4 stellig," & Chr(13) & Chr(13) & _
"bitte NEU eingeben !!!" & Chr(13), vbCritical
TextBox1 = "0000"
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Worksheets("Muster").Range("I2") = CDbl(TextBox1) 'direkt rein !
TextBox1 = Format(Worksheets("Muster").Range("I2").Value, ("0000"))
Label1.Caption = Worksheets("Muster").Range("I4")
End If
End If
End Sub
Dabei wird deutlich, daß die Längenprüfung nur stattfindet, wenn die Eingabe nicht numerisch ist.
Wenn die Eingabe numerisch ist, gehts nach dem zweiten "End If" weiter = Programmende.
Für die Prüfung mußt Du Dich schon entscheiden, ob nur Zahlen erlaubt sind oder ob an der 4. Stelle ein Buchstaben vorkommen darf.
Gruß
Gerd
Anzeige
Leider noch nicht...
01.09.2004 18:17:15
walter
Hallo Gerd,
habe reinkopiert, kann aber keine Änderung feststellen gegnüber meinem
Makro oder ich bin ...
Frage, was heißt = korrigierten Einzügen ?
Fehler noch:
Bei Eingabe der 4. Ziffer als BUCHSTABE kommt die Fehlermeldung Nur Zahlen...
und ich so viel Zahlen eingeben egal also nach oder bei der 5.Ziffer keine Warnung.
Gruss Walter MB
AW: Leider noch nicht...
01.09.2004 20:20:51
Nepumuk
Hallo Walter,
warum den einfach, wenn es auch kompliziert geht?


Private Sub TextBox1_Change()
    If Len(TextBox1.Text) = 4 Then
        Worksheets("Muster").Range("I2") = CDbl(TextBox1.Text) 'direkt rein !
        Label1.Caption = Worksheets("Muster").Range("I4")
        TextBox1.Locked = True
    End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Chr(KeyAscii) Like "[!0-9]" Then KeyAscii = 0
End Sub


Gruß
Nepumuk
Anzeige
Kann gar keine Zahlen eingeben !
01.09.2004 21:15:34
walter
Hallo Nepumuk,
habe dein Vorschlag reinkopiert, leider kann ich gar keine Zahlen oder Text eingeben.
Gruss Walter
P.S Bei meinem "alten Makro" habe ich eine Fehlermeldung Typen unverträglich bei der
Zeile: Worksheets("Prov-Blatt").Range("I2") = CDbl(TextBox1)
Hier noch einmal mein altes Makro:

Private Sub TextBox1_Change()
Dim EingabeZahl As String
If IsNumeric(TextBox1) = False Then
Beep
MsgBox "Nur Zahlen erlaubt, kein Text !", vbCritical
TextBox1 = "0000"
If Len(TextBox1) > 4 Then
Beep
MsgBox "        Achtung " & Chr(13) & Chr(13) & _
"Verkäufer Nr. ist 4 stellig," & Chr(13) & Chr(13) & _
"bitte NEU eingeben !!!" & Chr(13), vbCritical
TextBox1 = "0000"
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Worksheets("Muster").Range("I2") = CDbl(TextBox1)direkt rein !
TextBox1 = Format(Worksheets("Muster").Range("I2").Value, ("0000"))
Label1.Caption = Worksheets("Muster").Range("I4")
End If
End If
End Sub

Gruss Walter MB
Anzeige
Zur Ergänzung !
01.09.2004 21:27:00
walter
Hallo Nepumuk,
habe folgendes Makro NEU reingesetzt:

Private Sub TextBox1_Change()
Dim EingabeText As String
If Len(TextBox1) > 4 Then
Beep
MsgBox "        Achtung " & Chr(13) & Chr(13) & _
"Verkäufer Nr. ist 4 stellig," & Chr(13) & Chr(13) & _
"bitte NEU eingeben !!!" & Chr(13), vbCritical
TextBox1 = "0000"
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
Worksheets("Muster").Range("I2") = CDbl(TextBox1)
TextBox1 = Worksheets("Prov-Blatt").Range("I2").Value
Label1.Caption = Worksheets("Prov-Blatt").Range("I4")
End If
End Sub


Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) Like "[!0-9]" Then KeyAscii = 0
End Sub

Habe also meins und DEINS genommen, die Fehlermeldung ist nicht da, weil ich keinen
Buchstaben eingeben kann. Die Abfrage der 4.Ziffer ist aber i.o., leider ist es aber
notwendig das nach der 3 oder auch 4. Stelle mal ein Buchstabe gesetzt wird also:
400w / 33aw etc.
Gruss Walter
Anzeige
AW: Zur Ergänzung !
Luschi
Hallo Walter,
mit der folgenden Routine kannst Du an der 4. Stelle auch einen
Buchstaben eingeben.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) &lt 3 Then
If Chr(KeyAscii) Like "[!0-9]" Then
KeyAscii = 0
End If
End If
End Sub

Gruß von Luschi
aus klein-Paris
Danke funktioniert Super
02.09.2004 18:58:22
Walter
Hallo Lusch,
funktioniert Super, danke.
Gruss Walter
P.S. Wo liegt klein Paris ?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige