Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Textbox nur für numerische Eingabe

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Textbox nur für numerische Eingabe (3361 mal gelesen)
SHP
Mitglied
Konstrukteur


Sehen Sie sich das Profil von SHP an!   Senden Sie eine Private Message an SHP  Schreiben Sie einen Gästebucheintrag für SHP

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 06. Jan. 2007 22:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich habe in einer Userform eine Textbox in der ich nur numerische Eingaben zulassen möchte.
In der Sub Textbox1_change frage ich das mit "IsNumeric" ab, jetzt kann ich aber kein "-" eingeben.
Ich muss zuerst einen Wert eingeben und dann das "-" davorsetzen, ist etwas umständlich aber geht.
Ausserdem möchte ich mit einem Button "Löschen", eine schon eingegebenen Wert löschen.
Wenn ich das mit Textbox1.Value="" mache, meckert die Sub auch.

Wie machen das die Profis?

------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

   Das Saxregister
  

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 06. Jan. 2007 22:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

1.
Erst nach der Eingabe prüfen:

Code:

If (IsNumeric(TextBox1.Text)) Then
  MsgBox "Numeric"
Else
  MsgBox "Not numeric"
End If


2.
Code:

TextBox1.Text = ""



3.
Zitat:

Original erstellt von SHP:

Wie machen das die Profis?


Gar nicht. 

------------------
Grüße Igor

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 06. Jan. 2007 22:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Hallo Hans-Peter,

versuch's mal so:

Code:
Private Sub CommandButton1_Click()
    TextBox1.Text = ""
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57 'Zahlen
            If CBool(InStr(1, TextBox1.Text, "-")) And TextBox1.SelStart = 0 Then _
                TextBox1.Text = Replace(TextBox1.Text, "-", "")
        Case 45 'Bindestrich
            If TextBox1.SelStart <> 0 Then KeyAscii = 0
            If CBool(InStr(TextBox1.Text, "-")) Then KeyAscii = 0
        Case 44, 46
            If KeyAscii = 44 Then KeyAscii = 46
            If CBool(InStr(TextBox1.Text, ".")) Then KeyAscii = 0
            If CBool(InStr(1, TextBox1.Text, "-")) And TextBox1.SelStart = 0 Then _
                TextBox1.Text = Replace(TextBox1.Text, "-", "")
        Case Else
            KeyAscii = 0
    End Select
End Sub


Damit die Textbox den Fokus behält, musst du in den Eigenschaften des Commandbuttons die Eigenschaft TakeFokusOnClick auf False setzen.

------------------
Gruß
Nepumuk

[Diese Nachricht wurde von Nepumuk am 06. Jan. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Charly Setter
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Charly Setter an!   Senden Sie eine Private Message an Charly Setter  Schreiben Sie einen Gästebucheintrag für Charly Setter

Beiträge: 11977
Registriert: 28.05.2002

Trau keiner Diva unter SP2....

erstellt am: 06. Jan. 2007 23:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Das ist ja nun auch etwas "von hinten durch die Brust ins Auge"

Wenn "isnumeric" bei neg. Zahlen nicht funktioniert, würde ich es ml mit "val()" versuchen. Müßte ja im Falle einer fehlerhaften Typumwandlung einen Fehler geben. Zumindest funzt das im Pascal 

------------------
Der vernünftige Mensch paßt sich der Welt an;
der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.

Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab.
(George Bernard Shaw)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

Veni, Vidi, VW ...
I came, I saw, I drove around in a little car.

erstellt am: 07. Jan. 2007 00:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Guten Abend die Herren;-),

bin mal beim change() geblieben, war bissel Knobelei,
bin nun auch 10 graue Haare reicher    ... also hier mal noch ne Variante:

Code:

Option Explicit
Private re As Object

Private Sub UserForm_Initialize()
    Set re = CreateObject("vbscript.regexp")
    re.Pattern = "^-?\d*\.?\d*$"
End Sub

Private Sub TextBox1_Change()
    With TextBox1
        If .TextLength > 0 And Not re.test(.Text) Then .Text = Mid(.Text, 1, .TextLength - 1)
    End With
End Sub



lg Nancy

[Diese Nachricht wurde von startrek am 08. Jan. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

SHP
Mitglied
Konstrukteur


Sehen Sie sich das Profil von SHP an!   Senden Sie eine Private Message an SHP  Schreiben Sie einen Gästebucheintrag für SHP

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 07. Jan. 2007 10:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke mal für Eure Antworten.

@Igor,
sind bei Dir denn alle Eingaben möglich?

------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

   Das Saxregister
  

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 07. Jan. 2007 11:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von SHP:

@Igor,
sind bei Dir denn alle Eingaben möglich?

Ja. Wenn du es aber während der Laufzeit überprüfen möchtest, kannst du einen von beiden Codes nutzen (Nepumuk, startrek).


------------------
Grüße Igor

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

freak-tom
Mitglied
PDM-/CAD-Admin


Sehen Sie sich das Profil von freak-tom an!   Senden Sie eine Private Message an freak-tom  Schreiben Sie einen Gästebucheintrag für freak-tom

Beiträge: 347
Registriert: 07.03.2006

erstellt am: 15. Jan. 2007 12:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Hallo Forumuser

Habe auch ein Feld erstellt mit folgendem Code zur Überprüfung!

Zitat:
Original erstellt von daywa1k3r:

Code:

If (IsNumeric(TextBox1.Text)) Then
  MsgBox "Numeric"
Else
  MsgBox "Not numeric"
End If



Gibt es hier eine Möglichkeit Ausnahmen zu erlauben zum Beispiel den Buchstaben x?

Wenn ja wie geht das?

Danke schonmal!

MfG
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 15. Jan. 2007 12:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Hallo Thomas,

nicht mit der Funktion IsNumeric. Um dir aber zu sagen, wie's gehen könnte, müsstest du schon den Aufbau herausrücken.

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

freak-tom
Mitglied
PDM-/CAD-Admin


Sehen Sie sich das Profil von freak-tom an!   Senden Sie eine Private Message an freak-tom  Schreiben Sie einen Gästebucheintrag für freak-tom

Beiträge: 347
Registriert: 07.03.2006

Productstream Professional Pro 2011 / Jobserver / Replikator
Productstream Professional Office 2011
Productstream Professional Pro 2010 / Jobserver / Replikator
Productstream Professional Office 2010
Solid Works 2018
DraftSight 2019
SAP ECTR

erstellt am: 22. Jan. 2007 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich


code.txt


objektansicht.GIF

 
Das komplette script? oder was meinst du?

Script ist im Anhang!

Ich füge mit diesem Script ein skizziertes Symbol in Compass ein und die  Werte in den Textboxen entsprechen den angeforderten Eingaben im skizzierten Symbol!

MfG
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

freak-tom
Mitglied
PDM-/CAD-Admin


Sehen Sie sich das Profil von freak-tom an!   Senden Sie eine Private Message an freak-tom  Schreiben Sie einen Gästebucheintrag für freak-tom

Beiträge: 347
Registriert: 07.03.2006

erstellt am: 22. Jan. 2007 12:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SHP 10 Unities + Antwort hilfreich

Wenn mein Code umständlich ist, bin ich offen für Verbesserungsvorschläge!
Ich bin nämlich froh wenn ich sowas überhaupt hin bekomme, habe vor ein paar Monaten nichts gekonnt in VBA hab alles nur aus dem Forum hier gelernt durch anschauen von anderem Code und ausprobieren!
Also ich kenn mich nicht wirklich aus!

Jetzt weiß ich zumindest was der Code macht, den ich verwende! :-)

Hier mal ein Dankeschön an alle Leute, die hier immer fleißig Antworten!

MfG
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz