| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: verbesserte Effizienz durch optimierte Bedienoberfläche, eine Pressemitteilung
|
Autor
|
Thema: IsNumeric? (978 mal gelesen)
|
SirKlabauter Mitglied cand. Ing.

 Beiträge: 45 Registriert: 21.09.2006 CATIA: V5R16 Programmiersprache: VBA
|
erstellt am: 08. Mai. 2007 13:20 <-- editieren / zitieren --> Unities abgeben:         
An alle einen schönen Tag, Ich habe eine Eingabemaske (VBA) programmiert. Auf dieser Eingabemaske gibt es die eine oder andere Textbox. Damit der User der mit der Maske arbeitet, nur Zahlen eintragen kann habe ich folgendes geschrieben: If Not IsNumeric(Me.TextBox_Delta1.Value) Then TextBox_Delta1.Value = "" Exit Sub End If Das Problem an der Sache ist das man auch keine negativen Zahlen eintippen kann (z.B.-12). So wie ich das geschrieben hab bleibt die Textbox dann immer leer. Weiß von euch jemand wie ich das Problem lösen kann? Vorab schon mal Danke! Klabauter
------------------ Hinweise auf Rechtschreibfehler kann man sich bitte sparen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Locke101 Mitglied

 Beiträge: 51 Registriert: 02.05.2007
|
erstellt am: 08. Mai. 2007 13:53 <-- editieren / zitieren --> Unities abgeben:          Nur für SirKlabauter
Hallo SirKlabauter, hab grade sämtliche Varianten versucht, bei mir stellt es kein Problem dar. Hab die gleiche Abfrage schon öfters verarbeitet, war auch nie ein Problem. Kann es sein das dein Fehler woanderst liegt? Was mir auf Anhieb einfällt: Hast du die Userform zuvor schon ungeloaded, und das damit ein leeres Textfeld übergeben wird? Gruß Locke101 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SirKlabauter Mitglied cand. Ing.

 Beiträge: 45 Registriert: 21.09.2006 CATIA: V5R16 Programmiersprache: VBA
|
erstellt am: 08. Mai. 2007 15:59 <-- editieren / zitieren --> Unities abgeben:         
Danke Locke das du dir schon mal Gedanken gemacht hast. Bei dem Versuch was in die Textbox zu tippen wird nichts ungeloaded. Die Userform bleibt soll lange geöffnet bis sie der User schließt. Ich hab den Code auskommentiert und das Macro noch mal laufen lassen. Dann konnte ich eintragen was ich wollte, auch ein Minuszeichen. Private Sub TextBox_Delta1_Change() If Not IsNumeric(Me.TextBox_Delta1.Value) Then TextBox_Delta1.Value = "" Exit Sub End If End Sub Kann es daran liegen, daß die Abfrage jedesmal durchgeführt wird sobald eine weitere Ziffer dazu kommt? Wenn ich -1 eintippen will, startet die Abfrage schon bei dem Minuszeichen und die Textbox wird geleert. Kann das der Fehler sein? SirKlabauter
------------------ Hinweise auf Rechtschreibfehler kann man sich bitte sparen. CATIA: V5R14 Programmiersprache: VBA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SirKlabauter Mitglied cand. Ing.

 Beiträge: 45 Registriert: 21.09.2006 CATIA: V5R16 Programmiersprache: VBA
|
erstellt am: 08. Mai. 2007 16:05 <-- editieren / zitieren --> Unities abgeben:         
Genau das was ich oben geschrieben hab ist der Fehler. Wenn ich eine Zahl eintippe und mit dem Pfeiltasten an die erste Stelle gehe und dann ein Minus eintrage gibt es keine Probleme. ------------------ Hinweise auf Rechtschreibfehler kann man sich bitte sparen. CATIA: V5R16 Programmiersprache: VBA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proofin Mitglied Dpl.Ing
 
 Beiträge: 208 Registriert: 24.11.2004
|
erstellt am: 08. Mai. 2007 18:22 <-- editieren / zitieren --> Unities abgeben:          Nur für SirKlabauter
Moin SirKlabauter, Versuch es doch mal über die KeyPress Methode deiner Textbox ------------------------------------------------------------ Code ------------------------------------------------------------ Private Sub NameDeinerTextbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim Zugelassen As String ' In diesen String kommen alle Zeichen, die Sie zulassen möchten. Zugelassen = "1234567890,-" & Chr$(8) ' Es wird überprüft, ob das Zeichen, dass eingeben wurde zulässig ist If InStr(1, Zugelassen, Chr$(KeyAscii)) = 0 Then ' Falls es sich bei dem Zeichen um ein unzulässiges Zeichen ' handelt, wird die Eingabe durch Setzen von "KeyAscii = 0" unterbunden KeyAscii = 0 End If End Sub ------------------------------------------------------------ Code Ende ------------------------------------------------------------ vielleicht hilft es dir weiter. Gruß Proofin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SirKlabauter Mitglied cand. Ing.

 Beiträge: 45 Registriert: 21.09.2006 CATIA: V5R16 Programmiersprache: VBA
|
erstellt am: 10. Mai. 2007 10:54 <-- editieren / zitieren --> Unities abgeben:         
Proofin auch dir Danke für die Hilfe. Das Problem habe ich gelöst in dem ich einfach Private Sub TextBox_Beispiel_Change() in Private Sub TextBox_Beispiel_AfterUpdate() geändert habe. Druch deinen Beitrag habe ich aber auch wieder was gelernt. Man kann ja nie wissen, wann man das mal gebrauchen kann. SirKlabauter ------------------ Hinweise auf Rechtschreibfehler kann man sich bitte sparen. CATIA: V5R16 Programmiersprache: VBA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |