Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
136to140
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
136to140
136to140
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: UserForm mit TextBoxen

VBA: UserForm mit TextBoxen
19.07.2002 15:34:13
Ernst Dunkel
In UserForm1 habe ich sechs TextBoxen mit gleich Code.
Wie muss ich die untenstehende Prozedur vereinfachen, so dass der Code für alle TextBoxen in UserForm 1 gilt, ohne die Prozedur 5 mal zu kopieren?


Private Sub TextBox1_KeyPress(ByVal KeyAscii As msforms.ReturnInteger)
Dim TMP$
Dim x%
Dim i%
For x = 45 To 45
For i = 48 To 57
TMP = TMP & Chr(x)
TMP = TMP & Chr(i)
Next i
Next x
If InStr(1, TMP, Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As msforms.ReturnInteger)
Dim TMP$
Dim x%
Dim i%
For x = 45 To 45
For i = 48 To 57
TMP = TMP & Chr(x)
TMP = TMP & Chr(i)
Next i
Next x
If InStr(1, TMP, Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA: UserForm mit TextBoxen
19.07.2002 16:28:22
L.Vira
For each Control in Me.Controls
If control.Name like "*Textbox*" Then

.....

end if
next

Re: VBA: UserForm mit TextBoxen
19.07.2002 16:38:02
Michael Scheffler
Hallo,

nur mit drei, aber das kannst Du ja ändern.

Das ins Formular.

Option Explicit
Option Base 1

Dim cmdButtons(3) As New clsTxt
Private Sub UserForm_Initialize()
Set cmdButtons(1).ErnstTextBox = txt1
Set cmdButtons(2).ErnstTextBox = txt2
Set cmdButtons(3).ErnstTextBox = txt3
End Sub


Und das isn Klassenmodeul clsTxt:
Option Explicit
Option Base 1

Dim cmdButtons(3) As New clsTxt
Private Sub UserForm_Initialize()
Set cmdButtons(1).ErnstTextBox = txt1
Set cmdButtons(2).ErnstTextBox = txt2
Set cmdButtons(3).ErnstTextBox = txt3
End Sub


Gruß
Micha

Anzeige
Re: VBA: UserForm mit TextBoxen
19.07.2002 16:44:14
Michael Scheffler
Hey Elvira,

das ist vollkommener Blödsinn, den Du das postest. Es will Ereignisse der Textboxen auswerten - verstehst Du. Da kann er nicht mit einer Schelife etwas machen.

Gruß

Micha

Re: Danke
19.07.2002 17:33:29
Ernst Dunkel
Hallo Michael

Danke für Deine Lösung

Gruss Ernst

Re: VBA: UserForm mit TextBoxen
19.07.2002 18:36:27
L.Vira
Ja, du hast ja Recht, hab das einfach zu flüchtig gelesen
aber dennoch ist dein Ton etwas ruppig.
Re: VBA: UserForm mit TextBoxen
19.07.2002 19:06:33
L.Vira
Hatte das vorhin zu flüchtig gelesen. Wenn ich das richtig sehe, willst du erreichen, dass nur - und Zahlen zugelassen sind.
Dann geht auch das:

Private Sub Textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 45
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub

Anzeige
Re: VBA: UserForm mit TextBoxen
19.07.2002 21:22:44
Ernst Dunkel
Hallo L.Vira

Danke für die Vereinfachung meiner langen Prozedur.
Es ist richtig, ich will nur ganze Zahlen zulassen in allen TextBoxen der UserForm1.
Anfangs hatte ich nur drei TextBoxen mit derselben Prozedur, nun muss ich noch einige anhängen, darum dachte ich es müsste einen einfacheren Wege geben, ohne die Prozedur x-mal zu kopieren.

Die Prozedur von Michael Scheffler muss ich noch ausprobieren. Wenn ich damit nicht zu recht komme werde ich mich hier melden.

Gruss Ernst

Was ich nicht ganz....
20.07.2002 02:00:37
L.Vira
verstehe, wenn du nur Ganzzahlen zulassen willst, was soll dann
Chr(45) , das ist -
Dann reicht doch auch:

Private Sub Textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub

Klassen sind kein Allheilmittel und meist sogar umständlicher,
als das sonst möglich ist. Indiesem Fall bringt dir die Klasse nix.

Anzeige
Re: Was ich nicht ganz....
20.07.2002 10:53:14
Michael Scheffler
Hallo Elvira,

natürlich bringt die Klasse was: Code-Vereinfachung und zwar immer dann, wenn das Erignis passiert, nämlich Texteingabe, dann kannst Du prüfen, ob Buchstaben, Kommata oder Punkte eingeben werden.

Schreib mal spaßeshalber ein Programm mit einer Userform, wo Du die Textboxen dynamisch erstellst und erkläre mir mal, wie Du Eingabeerignisse abfangen willst.

Micha

Re: VBA: UserForm mit TextBoxen
20.07.2002 13:17:57
Ernst Dunkel
Hallo Micha

ich sehe Du "hängst" immer noch daran!

ich habe Deine Prozedur eingegeben, aber irgend was mache ich falsch, z.B. habe ich das mit dem Klassenmudul gar nicht verstanden! Ich werde erst wieder um 18 Uhr hier rein schauen.

Gruss Ernst

Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige