Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
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

AfterUpdate im Klassenmodul

AfterUpdate im Klassenmodul
04.04.2009 08:00:04
SteffenS
Hallo Zusammen,
ich erzeuge in einer Textbox ca. 60 Textfelder dynamisch.
Nun möchte ich beim verlassen einen Feldes einen Code ausführen.
Hierzu habe ich mir ein Klassenmodul gebaut.
Leider funktioniert dies aber nicht.
Private Sub txtbox_AfterUpdate()
txtbox.Value = Format(txt.box.Value, "0.00")
End IF
Wie schaffe ich es das die AfterUpdate Methode in meinem Klassenmodul funktioniert?
Die Change Methode geht, nützt mir aber wenig
Danke im Voraus.
MFG
Steffen Schmerler

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

Betreff
Datum
Anwender
Anzeige
AW: AfterUpdate im Klassenmodul
04.04.2009 08:05:39
Nepumuk
Hallo Steffen,
das geht nicht. Welche Ereignisse du in der Klasse abfangen kannst, siehst du in der rechten Combobox.
Gruß
Nepumuk
Alternativen?
04.04.2009 08:08:15
SteffenS
Welche Alternativen habe ich da?
Wo meinst Du kann ich die Ereignisse sehen?
Stehe gerade biss auf der Leitung.
Danke
MFG
Steffen
AW: Alternativen?
04.04.2009 08:21:33
Nepumuk
Hallo Steffen,
na in der rechten Combobox über dem Codefenster:
Userbild
Eine Alternative, schwierig. Du könntest zwar die Key-Events benutzen (Enter / Tab) aber wenn der User die nächste Textbox mit der Maus aktiviert, dann bekommst du das schon nicht mehr mit. Außer du fragst auch das Mous-Event ab und formatierst dann alle nichtleeren, unformatierten Textboxen. Dazu würde ich dann eine eigene Klasse anlegen, welche alle Textboxen enthält. Am einfachsten in einer Collection. Diese Klasse implementierst du in deiner Textboxklasse.
Gruß
Nepumuk
Anzeige
AW: Alternativen?
04.04.2009 08:23:49
ransi
HAllo Steffen
Ungetestet
Versuch doch mal diesen Weg:
' **********************************************************************
' Modul: Klasse1 Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public WithEvents txtbox As MSForms.Control

Private Sub txtbox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TypeName(txtbox) = "TextBox" Then
    
End If
End Sub

ransi
Anzeige
Code bringt fehler
04.04.2009 08:39:20
SteffenS
Wenn ich die Zeile
Set otxt_box(i).txtbox = Controls("RGBet1")
einbaue erscheint die Meldung:
Objekt / Klasse unterstützt Ereignissmenge nicht.
Was kann ich da tun?
MFG
Steffen Schmerler
AW: Code bringt fehler
04.04.2009 08:51:26
Nepumuk
Hallo Steffen,
ransi hat als Klassenobjekt das MSForms.Control-Objekt benutzt. Das hat aber keine Automatisierungsschnittstelle und kann darum in Klassen nicht eingesetzt werden.
Aber er schrieb ja auch "Ungetestet"
Gruß
Nepumuk
AW: Alternativen?
04.04.2009 08:25:47
ransi
Oder so ?
' **********************************************************************
' Modul: Klasse1 Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public WithEvents txtbox As MSForms.Control

Private Sub txtbox_AfterUpdate()
If TypeName(txtbox) = "TextBox" Then
    
End If
End Sub

ransi
Anzeige
AW: Alternativen?
04.04.2009 08:28:44
Nepumuk
Hallo ransi,
es gibt kein Exit-Event in Klassenmodulen. Ist auch einfach zu erklären. Exit ist ein Ereignis das mit dem Enter in einem anderen Control zusammenhängt. Da das andere Control aber in der Klasse aber nicht bekannt ist, kann es auch kein solches Ereignis geben.
Gruß
Nepumuk
Tab abfragen + Maus abfragen
04.04.2009 08:48:18
SteffenS
Hallo Nepumuk,
wie müsste ich das machen, dass ich den Tab und die Maus abfange?
Danke
MFG
Steffen
AW: Tab abfragen + Maus abfragen
04.04.2009 08:57:41
Nepumuk
Hallo Steffen,
benutzte einfach das KeyDown-Event für die Tastatur und das MouseUp-Event für die Maus. Setz einfach mal eine Msgbox in die Prozedur die dir anzeigt, welche Werte dir über die Parameter geliefert werden. Beispiel:
' **********************************************************************
' Modul: clsTextBox Typ: Klassenmodul
' **********************************************************************

Option Explicit

Private WithEvents mobjTextBox As MSForms.TextBox

Private Sub mobjTextBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    MsgBox KeyCode
End Sub

Private Sub mobjTextBox_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    MsgBox Button
End Sub

Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige