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

Klassenmodul für Textbox

Klassenmodul für Textbox
24.03.2013 07:53:15
W.Spietschka
Hallo Experten,
Ich habe eine Userform mit mehreren Textboxen, mit denen eine gleichartige
Aktion ausgeführt wird. Nun wollte ich dafür einen Klassenmodul anlegen.
Dabei scheitere ich an folgendem Problem: in der über die Klasse angelegten
Textbox funktionierfen die Ereignisse "Change" und "DblClick" wie bei Textbox
gewohnt, nicht aber das Ereignis "Exit".
Was kann man hier tun ?
Anmerkung: in dem Klassenmodul wird die Textbox mit
" Public WithEvents clsTBX As MSForms.TextBox "
und in der Useerform mit
" Set txtbox.clsTBX = Me.Controls.Add("Forms.TextBox.1", "TBOX", True) "
definiert
Wolfgang

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

Betreff
Datum
Anwender
Anzeige
AW: Klassenmodul für Textbox
24.03.2013 08:08:08
ransi
HAllo Wolfgang
Das Klassenmodul für eine Textbox stellt das Exit nicht zur VErfügung.
Da musst du dir anders behelfen.
Was genau hast du vor ?
ransi

AW: Klassenmodul für Textbox
24.03.2013 08:22:35
W.Spietschka
Hallo ransi,
mit dem Dbl_Click wird ein Ordnerwahldialog geöffnet und der Ornername in die Textbox und
einem Arbeitsblatt rückgespeichert. Mit dem Exit-Ereignis sollte ein eventuell manuell in
die Textbox enigegebener Ordnername auf Gültigkeit geprüft werden und je nach Ergebnis übernommen
werden oder der alte in der Arbeitmappe gespeicherte Name wieder in der Textbox angezeigt werden.
Als alternative Lösung fällt mir vorerst nur ein, anstelle einer Textbox ein Label zu verwenden,
in das keine manuelle Eingaben möglich sind. Damit entfällt der Wunsch nach dem Exit-Ereignis.
Wolfgang

Anzeige
AW: Klassenmodul für Textbox
24.03.2013 08:21:48
Beverly
Hi Wolfgang,
benutze stattdessen z.B. das KeyDown-Ereignis und werte KeyCode für Enter bzw. Tab aus.


AW: Klassenmodul für Textbox
24.03.2013 09:01:51
W.Spietschka
Hallo Beverly,
Deine Idee finde ich gut. Sie greift aber nur, wenn die Textbox mit der Tastatur bedient wird,
Sobald per Maus ein anderes Formularobjekt angeklickt wird, merkt die Textbox nichts.
Ich habe in dem Klassenmodul noch die Ereignisse "MouseDown" und "MoseMove" ausprobiert, aber die
scheinen von der per Klassenmodul definierten Textbox nicht unterstützt zu werden.
Die von mir skizzierte Lösung per Label habe ich probiert und sie funktionier . In der Userform kann
man nicht mehr manuell eingeben und damit die Konsistenz zwischen Label.Caption und den im Filesystem enthaltenen Ordnern gegeben.
Danke Wolfgang

Anzeige
AW: Klassenmodul für Textbox
24.03.2013 09:22:03
Beverly
Hi Wolfgang,
doch, die MousDown/Up-Ereignisse gibt es auch bei Klassen, aber sie betreffen natürlich nicht die TextBox, die gerade verlassen wurde. Eine Möglichkeit wäre vielleicht, dass du eine Public-Variable verwendest und beim Change-Ereignis der TextBoxen ihren Namen darauf schreibst. Dann kannst du beim MouseDown-Ereignis den Inhalt der betreffenden (vorhergehenden) TextBox prüfen.


AW: Klassenmodul für Textbox
24.03.2013 09:44:49
W.Spietschka
Hallo Beverly,
Dein Vorschlag würde funktionieren, aber die von mir erhoffte Arbeitserleichterung durch
Auslagerung einiger Textboxen in ein Klassenmodul geht verloren, da ich für jedes Formularobjekt
das MoseDown-Ereignis programmieren müsste. Das würde im konkreten Fall ca. 45 Objekte betrefffen.
Da bleibe ich lieber bei den konventionellen Textboxen, und programmiere dafür das Exit-Ereignis.
Der Aufwand lasst sich sicherlich mit wieteren SUB's minimieren.
Danke Wolfgang

Anzeige
AW: Klassenmodul für Textbox
24.03.2013 09:53:17
Beverly
Hi Wolfgang,
das verstehe ich nun nicht - du hast doch die TextBoxen als Klasse zusammengefasst und da gibt es das Mouse-Ereignis. Wieso also für 45 Objekte ein eigenes Mous-Ereignis?


AW: Klassenmodul für Textbox
24.03.2013 10:23:05
W.Spietschka
Hallo Beverly,
das sind in dem Formular nicht nut Textbox'en, sondern auch andere Objekte, wie Commandbutton,
Listbox, OptionButton, Checkbox, Labels und auch weitere Textbox'en , die nicht durch das oben
diskutierte Klassenobjekt ersetz werden können, da sie eine andere Funktionalität haben.
Wolfgang

Anzeige
AW: Klassenmodul für Textbox
24.03.2013 10:45:37
Beverly
Hi Wolfgang,
deine Aufgabenstellung im Eröffnungsbeitrag war, dass du TextBoxen zu einer Klasse zusammengefasst hast und es dort kein Exit-Ereignis gibt - dazu habe ich dir eine Lösung gepostet, auch für den Fall, dass die TextBox nicht per Enter/Tab verlassen wird.
Wenn du auch (andere) Steuerelemente hast - weshalb fasst du sie nicht auch zur Klasse zusammen? Man kann doch entweder mehrere Klassen erstellen oder innerhalb der Klasse Unterscheidungen für die Funktionalitäten treffen.


Anzeige
AW: Klassenmodul für Textbox
24.03.2013 12:42:41
W.Spietschka
Hallo Beverly,
es lag mir fern mit meiner etwas ungenauen Frage Ärger zu provozieren. Ich hatte nicht geahnt,dass
dieses Thema so in diee Breite gehen würde. Für mich war die Diskussion trotzdem ein guter
Einstieg in das Thema "Klassenmodule". Es hat mir sehr geholfen.
Danke Wolfgang.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige