Re: Ereignisse/ Klassenmodul/ TextBox_Change()
16.05.2003 21:51:51
Forum
Hallo Janich möchte ja nicht an Deine Programmierkenntnisse zweifeln aber Klasseprogrammierung ist schon recht Hohe VBA-Programmierung. Die Textboxen müssen erstmal zu Klassen zusammengefast werden.
Ein Tei eines Code für das Changeereignis für 5 Klassen.
Ich wünsch Dir viel Erfolg
' **************************************************************
' Modul: Klasse3 Typ = Klassenmodul
' **************************************************************
Option Explicit
Public WithEvents TextGroup As MSForms.TextBox
Dim Nummer As Integer
' Rate Termin Plan
Sub TextGroup_Change()
If Auftrag.Tag = "0" Then Exit Sub
If TextGroup.Value <> "" Then Numerisch Auftrag, TextGroup.Name
If IsNumeric(Mid(TextGroup.Name, 10, 1)) Then
Nummer = Mid(TextGroup.Name, 9, 2)
Else
Nummer = Mid(TextGroup.Name, 9, 1)
End If
Auftrag.Controls("TXT_Verä" & Nummer & "Rate").Visible = Auftrag.Controls("TXT_Plan" & Nummer & "Rate") <> ""
End Sub
' **************************************************************
' Modul: Auftrag Typ = Userform
' **************************************************************
Option Explicit: Option Compare Text
Dim cb As Control
Dim TextCount1 As Integer, TextCount2 As Integer, TextCount3 As Integer
Dim TextCount4 As Integer, TextCount5 As Integer
Private Sub UserForm_Activate()
Me.Tag = "0"
' Textbox-Klassen setzen
TextCount1 = 0: TextCount2 = 0: TextCount3 = 0: TextCount4 = 0: TextCount5 = 0
For Each cb In Me.Controls
If TypeName(cb) = "TextBox" Then
Select Case cb.Text
Case "1"
TextCount1 = TextCount1 + 1
ReDim Preserve TextBoxen1(1 To TextCount1)
Set TextBoxen1(TextCount1).TextGroup = cb
cb.Text = ""
Case "2"
TextCount2 = TextCount2 + 1
ReDim Preserve TextBoxen2(1 To TextCount2)
Set TextBoxen2(TextCount2).TextGroup = cb
cb.Text = 0
Case "3"
TextCount3 = TextCount3 + 1
ReDim Preserve TextBoxen3(1 To TextCount3)
Set TextBoxen3(TextCount3).TextGroup = cb
cb.Text = ""
Case "4"
TextCount4 = TextCount4 + 1
ReDim Preserve TextBoxen4(1 To TextCount4)
Set TextBoxen4(TextCount4).TextGroup = cb
cb.Text = ""
Case "5"
TextCount5 = TextCount5 + 1
ReDim Preserve TextBoxen5(1 To TextCount5)
Set TextBoxen5(TextCount5).TextGroup = cb
cb.Text = ""
End Select
End If
Next cb
Me.Tag = ""
End Sub
' **************************************************************
' Modul: Variablen Typ = Allgemeines Modul
' **************************************************************
Option Explicit
Public Mldg As String
Public Rategesamt As Double
Public I As Integer
Public TextBoxen1() As New Klasse1
Public TextBoxen2() As New Klasse2
Public TextBoxen3() As New Klasse3
Public TextBoxen4() As New Klasse4
Public TextBoxen5() As New Klasse5
Code eingefügt mit: Excel Code Jeanie
Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel