Anzeige
Archiv - Navigation
1212to1216
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
nur Zahlen in mehreren TextBoxen
Frank
Hallo Forummitglieder,
ich habe eine kurze Frage. und zwar kann man ja nur Zahlen in einer Textbox zulassen. Wenn ich nun auf einer UserForm oder sagen wir mehreren UserFormen 20 oder mehr Textboxen habe, bei denen alle nur Zahlen zugelassen sind, ob man den untenstehenden Code irgendwie verallgeimeinern kann und nicht für jede TextBox einzeln machen muss- geht das?
Private Sub TextBox1_Change()
If Not IsNumeric(TextBox1.Text) And TextBox1.Text  "" Then
MsgBox "Bitte geben Sie ein Zahl ein!"
TextBox1.Text = 1
End If
End Sub
Vielen Dank und viele Grüße,
Frank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: nur Zahlen in mehreren TextBoxen
10.05.2011 13:28:15
Rudi
Hallo,
das geht mit einer eigenen Klasse für die Textboxen.
Füge ein Klassenmodul (clsUF) ein.
Code:
Option Explicit
Public WithEvents myTxtBox As MSForms.TextBox
Private Sub myTxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub

Im Modul der UF:
Option Explicit
Dim objTbx(1 To 20) As New clsUF
Private Sub UserForm_Activate()
'Textboxen initialisieren
Set objTbx(1).myTxtBox = txtMenge1
Set objTbx(2).myTxtBox = txtWert1
Set objTbx(3).myTxtBox = txtMenge2
Set objTbx(4).myTxtBox = txtWert2
'usw.
End Sub

Gruß
Rudi
Anzeige
AW: nur Zahlen in mehreren TextBoxen
10.05.2011 13:56:59
Frank
Hallo Rudi,
vielen Dank für deine Antwort - echt ein tolles Forum, wo immer schnell geholfen wird. Ich habe jetzt eine neue Datei angelegt um deinen Code zu probieren. In VBA habe ich Einfügen Klassenmodul geklickt, was du mit clsUF meinst weiß ich nicht (siehe Bild). Ich würde mich freuen, wenn du mir kurz erläutern könntest was bei UserForm_Activate passiert und woher txtMenge und txtWert herkommen? Schade, auf sowas würde ich nie kommen, von daher wäre eine kleine Erklärung zum besseren Verständnis ganz gut
https://www.herber.de/bbs/user/74765.jpg
Vielen Dank und viele Grüße,
Frank
Anzeige
AW: nur Zahlen in mehreren TextBoxen
10.05.2011 14:05:48
Rudi
Hallo,
du musst Klasse1 in clsUF umbenennen.
Oder
Dim objTbx(1 To 20) As New Klasse1
Das sind dann 20 Instanzen von Klasse1
und woher txtMenge und txtWert herkommen?

Das musst du an deine vorhandenen Textboxen anpassen. Ich kann viel, aber nicht hellsehen.
Set objTbx(1).myTxtBox = txtMenge1
weist das Steuerelement (Textbox) txtMenge1 der ersten Instanz der neuen Klasse zu. etc.
Gruß
Rudi
Vielen Dank Rudi...
10.05.2011 14:22:06
Frank
ich habe noch nie mit einem Klassenmodul gearbeitet, aber ich dachte mir schon das es darauf hinaus läuft. Danke schön.
Noch kurz eine Frage: Wie lasse ich Kommas zu (zumindest eins) und das es eagl ist ob ich ein Komma oder einen Punkt definiere?
Vielen Dnak und viele Grüße,
Frank
Anzeige
AW: Vielen Dank Rudi...
10.05.2011 14:55:25
Rudi
Hallo,
Case 48 To 57, 44, 46
Gruß
Rudi
DANKE :o) owT.
10.05.2011 15:15:15
Frank
.

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige