Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Problem mit if not | Herbers Excel-Forum


Betrifft: Problem mit if not von: ray
Geschrieben am: 13.01.2010 16:00:27

Hallo,

ich möchte dafür sorgen, dass in einer Textbox nur 0,1 oder 2 eingegeben werden kann.

So gehts leider nciht. Wsa ist falsch?

Private Sub tbAnrede_Change()
If Not tbAnrede.Text = "1" Then
    ElseIf Not tbAnrede.Text = "0" Then
    ElseIf Not tbAnrede.Text = "2" Then
MsgBox "Das Feld Anrede ist falsch ausgefüllt. Nur 0,1 oder 2",
Else
End If
End Sub



Viele Grüße aus Hamburg

Ray

  

Betrifft: AW: Problem mit if not von: Hajo_Zi
Geschrieben am: 13.01.2010 16:05:29

Hallo Ray,

nur den korrekten Bereich angeben

Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   Eingaben nur Zahlen
    Select Case KeyAscii
        Case 48 To 57
        Case Else: KeyAscii = 0
    End Select
End Sub

GrußformelHomepage


  

Betrifft: Sehr schön, aber wie mit msgbox bei falschem input von: ray
Geschrieben am: 13.01.2010 16:09:35

gruß


  

Betrifft: AW: Sehr schön, aber wie mit msgbox bei falschem input von: Hajo_Zi
Geschrieben am: 13.01.2010 16:12:50

Hallo Ray,

mit dem Ciode wird die falscxhe Eingabe erst gar nicht angezeigt. Die Msgbox kannst Du bei Else einbinden.

Gruß Hajo


  

Betrifft: geht nicht... er zeigt mir kein Zeichen an... von: ray
Geschrieben am: 13.01.2010 16:16:24

Hajo, warum zeigt er mir nicht 0-2 bei der Eingabe an????

Private Sub tbAnrede_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   Eingaben nur Zahlen
    Select Case KeyAscii
        Case 0 To 2
        Case Else:
        KeyAscii = 0
        MsgBox ""
    End Select

End Sub



  

Betrifft: Warum... von: Björn B.
Geschrieben am: 13.01.2010 16:17:49

... machst du es nicht so, wie ich geschrieben habe?
Das funktioniert.

Message kommt auch:
Hier nochmal einfacher:

Private Sub tbAnrede_Change()
  If tbAnrede.Text <> "0" And tbAnrede.Text <> "1" And tbAnrede.Text <> "2" Then
    MsgBox "Das Feld Anrede ist falsch ausgefüllt. Nur 0,1 oder 2"
  End If
End Sub
Gruß
Björn B.


  

Betrifft: Weil ich grad von Hajo was lerne... von: ray
Geschrieben am: 13.01.2010 16:20:36

...das mit den Zahlen von Hajo hätte ich schon oft gebraucht und deshalb will ich es jetzt lernen

Aber danke und Grüß aus HH

Ray


  

Betrifft: gut... von: Björn B.
Geschrieben am: 13.01.2010 16:25:45

...

du musst den ASCII-Code der Zahlen eingeben, nicht 1,2,0 direkt.

Hab das grad auch nicht im Kopf, google mal nach ASCII, dann findest du die gewünschten Zahlen schnell.

Gruß
Björn b.


  

Betrifft: AW: geht nicht... er zeigt mir kein Zeichen an... von: Hajo_Zi
Geschrieben am: 13.01.2010 16:29:33

Haölo Ray,

es soll nur eine lere msgbox kommen falls nicht die vorgegebenen Zeichen.
Ich vermute mal die korekten Zahlen hast Du auch nicht entsprechend meines Beispieles übersetzt.

Gruß Hajo


  

Betrifft: Lieber Hajo... von: Björn B.
Geschrieben am: 13.01.2010 16:32:36

... warum macht es Dir eigentlich so viel Spaß andere im Dunkeln tappen zu lassen??

War es jetzt zu viel für dich, den Hinweis reinzuschreiben, dass man den ASCII Code nehmen muss?

Dieser Beitrag von Dir hilft Ray in keinster Weise. Warum sagst du nicht, wie man es richtig macht?
Dass er es nicht richtig gemacht hat, hat er schon gewussst.

Nix für ungut, aber manchmal verstehe ich sowas nicht so ganz.

Gruß
Björn B.


  

Betrifft: AW: Lieber Börn von: Hajo_Zi
Geschrieben am: 13.01.2010 16:36:39

Hallo Björn,

in meinen ersten Bereich Stand der Zahlenbereich. Irgend jemand hat Ray empfohlenm diesen so zu ändern. Warum soll ich ihm was anderes einreden da er mir nicht glaubt, sondern dem anderem.

Gruß Hajo


  

Betrifft: AW: geht nicht... er zeigt mir kein Zeichen an... von: ray
Geschrieben am: 13.01.2010 16:37:40

doch, ich habe bei case 0 to 2 eingegeben.
Ist das falsch???

Gruß Ray (Muß jetzt weg, meld mcih morgen)


  

Betrifft: AW: geht nicht... er zeigt mir kein Zeichen an... von: Hajo_Zi
Geschrieben am: 13.01.2010 16:40:41

Hallo Ray,

siehe Dir meinen ersten Code an. Da steht für Zahlen nicht 0..9.
Der Kommentar ist da ja eindeutig.
Wie Björn schon geschrieben hat ASC II

Gruß Hajo


  

Betrifft: AW: geht nicht... er zeigt mir kein Zeichen an... von: Hajo_Zi
Geschrieben am: 13.01.2010 17:11:37

Hallo Unbekannte(r)

hier die Umrechnung,
Spalten mit Zahlen ansprechen
Range(Columns(7), Columns(27)).Hidden=true

Gruß Hajo


  

Betrifft: AW: geht nicht... er zeigt mir kein Zeichen an... von: Hajo_Zi
Geschrieben am: 13.01.2010 17:14:35

Hallo Ray,

der Beitrag ist an der falschen Stelle.

Gruß Hajo


  

Betrifft: AW: KeyAscii Zahlen 0 bis 2 von: hary
Geschrieben am: 13.01.2010 17:37:33

Hallo ray
mach's so. Bei falscher Eingabe passiert nix.

Private Sub tbAnrede_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 Select Case KeyAscii
        Case 48 To 50 'nur zahlen 0 bis 2
        Case Else: KeyAscii = 0
    End Select
End Sub

gruss hary


  

Betrifft: Logikfehler von: Björn B.
Geschrieben am: 13.01.2010 16:06:07

Hallo Ray,

einfacher in einer Zeile abfragen, dann hast du das Problem nicht.

If tbAnrede.Text <> "0" and tbAnrede.Text <> "1" and tbAnrede.Text <> "2" then
...
else
...
end if
Gruß
Björn B.


  

Betrifft: Combobox? von: Björn B.
Geschrieben am: 13.01.2010 16:08:02

Nochmal Hallo,

wäre es nicht einfacher eine Combobox zu nehmen?

Nur so als Idee.

Gruß
Björn B.


Beiträge aus den Excel-Beispielen zum Thema "Problem mit if not "