Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
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
VB Klassenmodul für Textboxen
Reinhard
Hallo Wissende,
die Form hat 1 Commandbutton und Textboxen.
Im folgenden VB-Code soll beim Change- oder Clickereignis eine Msgbox erscheinen, es tut sich aber nix :-(
Ich habe VB5.0
in die Form:
Option Explicit
Dim txtBoxes(1 To 10) As New Class1
Private Sub Command1_Click()
Dim N As Integer, PI(10) As String
For N = 1 To 10
With Me.Controls("PlayerID" & N)
If .Text  "" Then PI(N) = .Text & " "
End With
Next N
End Sub
Private Sub UserForm_Initialize()
Dim N As Integer
For N = 1 To 2
Set txtBoxes(N).TxtGroup = Me.Controls("PlayerID" & N)
Next N
End Sub
in ein Klassenmodul mit Namen Class1
Option Explicit
Public WithEvents TxtGroup As TextBox 'MSForms.TextBox klappt nicht?
Private Sub TxtGroup_Change()
MsgBox TxtGroup.Name & " change"
End Sub
Private Sub TxtGroup_Click()
MsgBox TxtGroup.Name & " click"
End Sub

Danke ^ Gruß
Reinhard

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VB Klassenmodul für Textboxen
14.04.2010 14:14:26
Rudi
Hallo,
Change geht. Click steht in eigenen Klassen nicht zur Verfügung.
Es muss MSForms.Textbox sein.
Gruß
Rudi
AW: VB Klassenmodul für Textboxen
14.04.2010 14:35:43
Reinhard
Hallo Rudi,
nein, VB kennt kein MSForms.TextBox.
Das Click-Ereignis gibt es, die Prozedurhülle wurde mir ja vom VB-Editor erzeugt.
Sorry, daß hat sich überschnitten, ich wollte grad meinen Beitrag hier ergänzen.
Ich habe den Code umgeschrieben für Excel-Vba.
Sowohl in XL97 als auch in XL2000 funktioniert er, also die Messageboxen kommen.
(Click hatte ich nicht getestet, nur Change)
Bislang dachte ich XL97 ist auf VB5.0 aufgebaut und XL2000 auf VB6.0.
Bei Info im Vb-Editor kommt bei XL97 keine Versionsangabe bzw nur Hinweis auf Copyright 1987-1996.
Bei XL2000 wird VB6.5 angezeigt.
Da ich auch Xl2007 installiert habe kann da XL2000 was Falsches anzeigen weil ich mitr recht sicher bin, vor XL2007 zeigte XL2000 VB6.0 an.
Insofern glaube ich jetzt mein Code ist in Ordnung, er klappt halt in VB5.0 nicht.
Gruß
Reinhard
Anzeige
AW: VB Klassenmodul für Textboxen
14.04.2010 14:48:09
mumpel
Hallo!
Du darfst VBA nicht mit VB verwechseln. Die sind zwar verwand, aber doch (sehr) unterschiedlich.
Gruß, René
AW: VB Klassenmodul für Textboxen
14.04.2010 15:35:50
fcs
Hallo Reinhard,
wie schon Mumpel schrieb
VB = Visual Basic
und
VBA = Visual Basic for Applications
sind nur Verwandte.
In der Excel-Umgebung gibt es für das Textbox-Objekt keine Ereignisprozeduren.
Diese sind nur an das MSForms.Textbox-Object gebunden.
Es sind im Klassenmodul auch nicht alle Ereignisprozeduren möglich, die z.B. direkt in einem Userform für eine Textbox zugewiesen werden können. So ist das Exit-Ereignis nicht auswertbar.
Unter Excel 2003, VBA-Editor-Info: Microsoft Visual Basic 6.0, VBA: Retail 6.4.9972 Forms3: 11.0.6550
funktionierts. Allerdings hatte ich etwas Schwierigkeiten mit der Name-Eigenschaft. Diese wird im VBA-Editor nicht als Eigenschaft des Objekts angeboten. Hat aber am Ende doch funktioniert.
Gruß
Franz

'Code im Klassenmodul Class1 - Beispielhaft
Option Explicit
Public WithEvents TxtGroup As MSForms.TextBox
Private Sub TxtGroup_Change()
With TxtGroup
If .Value  "" Then
'Prüfung auf nummerische Eingabe mit Zahlenbereich
If IsNumeric(.Value) Then
If .Value  999 Then
MsgBox .Name & "nur Werte >=0 und 

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige