Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textbox - Optimieren

Textbox - Optimieren
23.06.2006 08:59:30
selma
Hallo Excel-Anwender,
ich bin bezüglich VBA-Programmierung totaler Laie.
Trotz dieser Schwäche habe ich es geschafft eine
größeres, benutzerdefiniertes Programm zu schreiben.
Bei den Textboxen komme ich jedoch immer wieder an meine Grenzen.
In meinem Programm sind nun ca. 200 Textboxen.
Nun stelle ich mir die Frage muss es immer so kompliziert sein.
Dies an einem Beispiel:
Beim Anklicken der Textbox wird die Farbe gelb, beim Verlassen wieder weiss.
Der Tausenderpunkt wird gesetzt, ebenfalls das EUR-Zeichen.

Private Sub textbox142_Enter()
TextBox142.BackColor = &H80FFFF
End Sub


Private Sub textbox142_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox142.BackColor = &H80000005
End Sub


Private Sub textbox142_AfterUpdate()
Dim datenlager As String
'Komma und Tausenderpunkte setzen. Prüfen obe Feld leer
Select Case Len(TextBox142.Value)
Case 0
TextBox142 = 0
End Select
datenlager = Format(TextBox142.Value, "##,##0.00 €")
TextBox142.Value = datenlager
End Sub

Dieses Spiel wiederhole ich wie gesagt 200 mal, bei jeder Textbox.
1. Frage: Gibt es Möglichkeiten dies zu vereinfachen?
2. Frage: Gibt es eine Möglichkeit, die Eingaben z. B. auf Zahlen zu begrenzen.
Bei fehlerhafter Eingabe (z. B. Anwender gibt aus Versehen einen
Buchstaben ein)
erscheint ein Warnhinweis. Die Textbox bleibt leer. Er eingegebene
Wert wird ignoriert.
3. Frage: Kann dies über eine Klasse definiert werden?
Wenn ja, kann ich die bestehenden Textboxen mit der Klasse verbinden.
Für die Hilfe danke ich im Voraus
Viele Grüsse
selma

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

Betreff
Datum
Anwender
Anzeige
AW: Textbox - Optimieren
23.06.2006 10:28:24
u_
Hallo,
das kannst du über eine eigene Klasse machen. Allerdings stehen dir hier nicht alle Ereignisse, die es für Textboxen gibt, zur Verfügung.
Eine gute Einführung in Klassen findest du hier:
http://www.online-excel.de/excel/grusel_vba.php?f=7
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Textbox - Optimieren
23.06.2006 16:04:01
Peter
Hallo Selma,
vielleicht hilft dir die beigefügte Mappe, die mit 50 TextBoxes arbeitet, weiter.
https://www.herber.de/bbs/user/34587.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Textbox - Optimieren
23.06.2006 16:27:41
selma
Hallo Peter,
ich bin positiv überrascht, was man alles machen kann, wenn mans kann.
Ich mühe mich ab - und Du 1-2-3 alles erledigt.
Zwei Nachfragen habe ich noch.
Du gibt dem Anwender die Möglichkeit, ein Komma einzugeben,
wie siehts mit Datum aus?
Wie kann die das EUR-Zeichen oder Prozentzeichen noch einsetzen?
Viele Grüsse
selma
AW: Textbox - Optimieren
23.06.2006 16:27:41
selma
Hallo Peter,
ich bin positiv überrascht, was man alles machen kann, wenn mans kann.
Ich mühe mich ab - und Du 1-2-3 alles erledigt.
Zwei Nachfragen habe ich noch.
Du gibt dem Anwender die Möglichkeit, ein Komma einzugeben,
wie siehts mit Datum aus?
Wie kann die das EUR-Zeichen oder Prozentzeichen noch einsetzen?
Viele Grüsse
selma
Anzeige
AW: Textbox - Optimieren
23.06.2006 17:33:33
Peter
Hallo Selma,
das Makro um % und € erweitert, wobei € nicht will, wie es soll:
'
' nur Minus, Komma, Zahlen und Prozent bzw. € zulassen
'

Private Sub TxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TxtBox) = 0 Then      ' wurde noch nichts eingegeben ?
Select Case KeyAscii
Case 44, 45, 48 To 57  ' 44 = , 45 = - 48 - 57 = 0 - 9
Case Else
KeyAscii = 0
End Select
ElseIf InStr(1, TxtBox, ",") = 0 Then ' gibt es noch kein Komma ?
Select Case KeyAscii
Case 44, 48 To 57      ' 44 = , 48 - 57 = 0 - 9
Case Else
KeyAscii = 0
End Select
Else
Select Case KeyAscii
Case 37, 48 To 57, 128 ' 37 = %, 48 - 57 = 0 - 9, 128 = €
Case Else
KeyAscii = 0
End Select
End If
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Textbox - Optimieren
24.06.2006 11:35:06
Peter
Hallo Selma,
nun geht auch die Eingabe eines €-Zeichens.
Aber gleichzeitig Werte und Datum geht natürlich nicht.
Wenn du allerdings unterscheiden kannst, welche TextBoxes Werte und welche Datum enthalten sollen, könnte man das entsprechende Key_Press Ereignis evtl. mit einer If oder Select Case Abfrage 'erschlagen'.
https://www.herber.de/bbs/user/34599.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige