Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
500to504
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
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Textbox Change eigene Klasse mit Ausnahmen
16.10.2004 17:45:30
Jens_Pu
Hallo Excelfreunde,
habe es mit Hilfe des Forums geschafft mal was mit einer eigenen Klasse hinzubekommen.
Beim ändern einer Textbox wird sie automatisch formatiert. Klappt.
Frage: wenn ich nun einige wenige Textboxen anders formatieren lassen will, wie muß ich das anghen? Muß ich die in der Sub init explizit aussparen, oder in der Userform bei dem Change-Ereignis der jeweiligen textbox eingreifen, oder wie macht man das am besten?
Bin für jeden Tip dankbar.
So sieht das momentan aus:
Public AnzCombobox As Integer
Public AnzTextBox As Integer
Im Klassenmodul clsText:
Option Explicit
Option Base 1
Public WithEvents clsText As MSForms.TextBox

Private Sub clsText_Change()
clsText.Value = Format(clsText, "#,##0.00")
clsText.TextAlign = fmTextAlignRight
End Sub

Klassenmodul der Userform:

Private Sub UserForm_Activate()
Call init 'initialisiert die Klassenmodule
End Sub

Hier erfolgt die Zuweisung der Comboboxen zur neuen Klasse
Sub init()
Dim i%
Dim strObjname As String

ReDim ctlCombo(AnzCombobox)
ReDim ctlText(AnzTextBox)

With frmBestellungGS 'Comboboxen
For i = 1 To AnzCombobox
strObjname = "ComboBox" & i
Set ctlCombo(i).clsCombo = .Controls(strObjname)
Next
End With
With frmBestellungGS 'Textboxen
For i = 1 To AnzTextBox
strObjname = "TextBox" & i
Set ctlText(i).clsText = .Controls(strObjname)
Next
End With
End Sub
Gruß Jens

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

Betreff
Datum
Anwender
Anzeige
AW: Textbox Change eigene Klasse mit Ausnahmen
K.Rola
Hallo,
nach deinem Code müssen die Ausnahmen nur anders heißen, halt nicht Textbox12, sondern
z.B. Ausnahme_Textbox12
Gruß K.Rola
AW: Textbox Change eigene Klasse mit Ausnahmen
16.10.2004 18:00:04
Jens_Pu
Hallo K.Rola,
das geht in diesem Fall leider nicht. Die Namen müssen so bleiben.
Gruß Jens
AW: Textbox Change eigene Klasse mit Ausnahmen
K.Rola
Hallo,
es geht mich ja nichts an, aber von dieser Notwendigkeit kannst du mich nicht überzeugen.
Nenn mal wenigstens ein Argument, warum die nicht anders heißen können.
Gruß K.Rola
AW: Textbox Change eigene Klasse mit Ausnahmen
16.10.2004 18:07:12
Jens_Pu
Hallo K.Rola,
ich hab's befürchtet.
Die Eigenschften der Controls werden in Tabellenblätter geschrieben. Die Namen sind immer die schönen Standardnamen, damit ich über Schleifen darauf zugreifen kann.
Reicht das?
Gruß Jens
Anzeige
AW: Textbox Change eigene Klasse mit Ausnahmen
K.Rola
Hallo,
kein schlagkräftiges Argument, die Auswirkung siehst du ja, indem du dir selbst ein Problem schaffst, was du sonst gar nicht hättest. Standardisierung ist ja ganz schön,
aber bei Allem dennoch flexibel bleiben. Du wirst ja die Projekte nicht am Fließband
produzieren.
Mit einer Schleife auf die Einträge in der Tabelle zugreifen kansst du auch, wenn die Teile nicht Textbox heißen.
Gruß K.Rola
AW: Textbox Change eigene Klasse mit Ausnahmen
16.10.2004 18:27:22
Jens_Pu
Hallo K.Rola,
vielleicht kann ich es ja auch nur nicht so gut beschreiben.
Es gibt sicherlich vor und Nachteile beider Varianten.
Hatte so was auch schon mit "Eigennamen" für die Controls. Da hatte ich auch gewaltige Probleme. Hier im Forum wurde ich ständig gefragt warum ich das nicht mit zählbaren Namen mache, weil es einfacher ist. ;-)
Gruß Jens
Anzeige
AW: Textbox Change eigene Klasse mit Ausnahmen
K.Rola
Hallo,
läßt denn dein Schema zu, den Controls noch ein Tag mitzugeben?
Gruß K.Rola
AW: Textbox Change eigene Klasse mit Ausnahmen
17.10.2004 08:36:57
Jens_Pu
Hallo K.Rola,
jo, das kann ich machen.
Habe jetzt das Klassenmodul so geändert. Klappt prima.
Vielen Dank für Deine Bemühungen.
Option Explicit
Option Base 1
Public WithEvents clsText As MSForms.TextBox

Private Sub clsText_Change()
Select Case clsText.Tag
Case "sF1"
clsText.ForeColor = RGB(255, 0, 0)
Case "sF2"
clsText.Font.Bold = True
Case Else
clsText.Value = Format(clsText, "#,##0.00")
clsText.TextAlign = fmTextAlignRight
End Select
End Sub

Gruß Jens
Anzeige
AW: Textbox Change eigene Klasse mit Ausnahmen
17.10.2004 08:37:09
Thomas
Hallo Jens
&gtFrage: wenn ich nun einige wenige Textboxen anders formatieren lassen will, wie muß ich das anghen?
Man kann die Klasse auch etwas komplexer aufbauen (und immer kapseln). Versuch's mal etwa so ...


      
Option Explicit
Dim TextBoxes(2) As New CTextBox
Private Sub UserForm_Activate()
    
    TextBoxes(0).Create Me.TextBox1, ctb_formatted
    TextBoxes(1).Create Me.TextBox3, ctb_formatted
    
    
' Oder weglassen ...
    TextBoxes(2).Create Me.TextBox2, ctb_regular
    
End Sub 


Die Klasse CTextBox...


      
Option Explicit
'Public WithEvents clsText As MSForms.TextBox
Private WithEvents TBREG As MSForms.TextBox
Private WithEvents TBFOR As MSForms.TextBox
Public Enum CTB_STYLE
    ctb_regular = 1
    ctb_formatted
End Enum
Public Function Create(TextBox As MSForms.TextBox, s As CTB_STYLE) As Boolean
    
Select Case s
    
Case CTB_STYLE.ctb_regular
        
Set TBREG = TextBox: If Not TBREG Is Nothing Then Create = True
    
Case CTB_STYLE.ctb_formatted
        
Set TBFOR = TextBox: If Not TBFOR Is Nothing Then Create = True
    
End Select
End Function
Private Sub TBFOR_Change()
    TBFOR.Value = Format(TBFOR, 
"#,##0.00")
    TBFOR.TextAlign = fmTextAlignRight
End Sub
Private Sub TBREG_Change()
    MsgBox 
"Something different ..."
End Sub 


Gruß
Thomas
Risi Thomas Softwareentwicklung
Anzeige
AW: Textbox Change eigene Klasse mit Ausnahmen
17.10.2004 12:43:20
Jens_Pu
Hallo Thomas,
auch Dir vielen Dank.
Eine sicherlich sehr interessante Variant, die ich zwar mit meinem momentanen Wissenstand noch nicht in allen Detail verstehe, aber fleißig daran arbeite.
Gruß Jens

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige