Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
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
Inhaltsverzeichnis

prozedur nach "afterupdate" irgendeiner textbox

prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 14:50:00
uli
Hallo Experten,
Hoffe ihr könnt mir bei meinem kleinen Problem helfen.
Habe eine USerform mir ca 70 Textboxen. In diese Textboxen werden Werte teilweise von Hand eingetragen oder automatisch berechnet und befüllt. Diese Textboxen sollen alle ein einheitliches Zahlenformat haben ("#,##0.00"). Dieses Zahlenformat aktiviere ich im Moment über den "afterupdate" - Zusatz der TExtboxen. Ich habe das jetzt bei wenigen gemacht, finde es allerdings unschön soviele private subs zu schreiben.
Kann ich irgendwie ein private sub schreiben, dass nach Aktualisierung irgendeiner Textbox das Zahlenformat ändert?
Also nicht: private sub Textbox10_afterupdate
sondern in der Art: private sub Textbox(egal welche)_afterupdate?
Gruß
Uli

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 14:58:24
Rudi
Hallo,
da sehe ich keine Chance, da afterupdate in eigenen Klassen nicht unterstützt wird.
Du kannst allenfalls in Textbox_afterupdate eine Sub aufrufen, die die Formatierung erledigt, allerdings auch 70 mal.
Gruß
Rudi
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 15:30:22
Beverly
Hi Uli,
wie schon Hajo schrieb geht das mit Klassenprogrammierung. Im Anhang ein einfaches Beispiel mit 5 TextBoxen, bei dem nach dem Verlassen der TextBox mit Enter die Anzeige in das von dir vorgegebene Format umgewandelt wird.
https://www.herber.de/bbs/user/56677.xls


Anzeige
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 16:11:00
uli
Hallo Hajo, Rudi und Beverly,
vielen Dank für eure Hilfe. Wie HAjo schon vermutet hat, haben meine VBA-Kenntnisse nicht ausgereicht, den Code von Hajo zu entschnippseln und die richtigen Zeilen rauszuholen. Trotzdem Danke dir!
@Beverly: Dein Code funktioniert einwandfrei. Wenn ich ihn allerdings bei mir einfüge, meckert er bei öffnen meiner Userform über:
Option Explicit
Public clsTextBoxen() As New clsTextBox
mit dem Fehler: Fehler beim Kompilieren Benutzerdefinierter Typ nicht definiert
Ich probier allerdings noch ein bisschen. Vielleicht bekomme ich es ja noch hin.
Ist es möglich die Formatierungen auch bei Maus-klick in eine andere Textbox oder in die USerform durchführen zulassen (Zusätzlich zum Enter)?
Gruß
Uli
Anzeige
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 16:25:42
Beverly
Hi Uli,
in diesem Fal ist ein Verweis nicht gesetzt. Schau mal im VBA-Editor unter Extras -&gt Verweise. Bei mir sind folgende Verweise gesetzt und es funktioniert:
- Visual Basic For Application
- Microsoft Excel 10.0 Object Libray
- OLE Automation
- Microsoft Office 10.0 Object Libray


AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 16:30:05
uli
Hallo Karin,
die hab ich auch, allerdings 11 statt 10.0. Zusätzlich hab ich noch Microsoft Forms 2.0
Gruß
Uli
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 17:03:00
uli
ahhhhhh, Fehler gefunden...
Ist mir schon echt peinlich. Hab das Klassenmodul clsTestbox statt clsTextbox genannt...
Gibt es irgendwo eine Liste, die die Nummern der Tasten auflistet?
Gruß
Uli
Anzeige
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 17:23:00
Beverly
Hi Uli,
du meinst den Ascii-Code? Schau mal in der VBA-Hilfe unter dem Stichwort Zeichensatz.
Um die TextBox auch bei Verlassen mit der Maus zu formatieren, musst du in einer Schleife über alle Steuerelemente des Userforms laufen und wenn es eine TextBox mit numerischem Wert ist diese entsprechend formatieren. Dazu in einem allgemeinen Modul:

Sub textboxen_formatieren()
Dim coElement As Control
For Each coElement In frmEintrag.Controls
If TypeName(coElement) = "TextBox" Then If IsNumeric(coElement) Then coElement = Format( _
CDbl(coElement), "#,##0.00")
Next coElement
End Sub


im Codemodul des UserForms


Private Sub UserForm_Click()
textboxen_formatieren
End Sub


und im Klassenmodul


Private Sub clTextBox_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
textboxen_formatieren
clTextBox.SetFocus
End Sub




Anzeige
AW: prozedur nach "afterupdate" irgendeiner textbox
11.11.2008 17:39:00
uli
Hallo Karin,
Toll. Genauso hab ich mir den Code vorgestellt. Vielen Dank Dir!!!
Gruß
Uli

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige