Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wie löse ich das mit Klassenmodul?

wie löse ich das mit Klassenmodul?
04.03.2004 16:09:01
Peter Feustel
Hallo Excel Experten,
ich habe eine UserForm mit 66 TextBoxes. Bei KeyDown auf irgendeine dieser 66 TextBoxes, soll immer das gleiche Makro ablaufen.


 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   Select Case KeyCode
      Case vbKeyF1: Call Frage_01_17
      Case vbKeyF2: Call Frage_18_34
      Case vbKeyF3: Call Frage_35_50
      Case vbKeyF4: Call Frage_51_66
   End Select
   
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Hier für die TextBox1 gezeigt.
Wie löse ich das über ein Klassenmodul oder anders eleganter und nicht 66 mal das gleiche Makro nur mit anderer TextBox Nummer?
Ich habe noch nie mit Klassenmoduln gearbeitet - deshalb mein Hilferuf.
Gruß, Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wie löse ich das mit Klassenmodul?
04.03.2004 17:42:16
Hajo_Zi
Hallo Peter
schaue Dir mal dieses Beispiel an. Alle Textboxen die im VBA Editor mit 2 beschriftet sind.
http://home.media-n.de/ziplies/gepackt/vba/userform_change.zip
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


AW: wie löse ich das mit Klassenmodul?
04.03.2004 21:09:35
Peter Feustel
Hallo Hajo,
danke für deine Muster Mappe, aber...
entweder bin ich zu dumm, das für mich zu adaptieren, oder
Ich muss bei 66 TextBoxes reagieren, wenn der Anwender in einer davon F1, F2, F3 oder F4 drückt.
Da finde ich z. Zt. keinen Ansatz, zumal ich fürchte, genau so viele Makros wie jetzt auch (unter der UF), nämlich 66 Stück, die dann im Klassenmodul schreiben zu müssen. Oder?
Gruß, Peter
Anzeige
AW: wie löse ich das mit Klassenmodul?
04.03.2004 22:09:14
K.Rola
Hallo,
lad mal eine Datei hoch, ich bau dir das dann ein.
Gruß K.Rola
AW: für K-Rola
05.03.2004 08:44:54
Peter Feustel
Moin K.Rola,
hier kommt meine Datei, nebst dem, was ich an Makros dazu geschrieben habe, die Daten sind stark gekürzt.
Die 66 Sub zur Abfrage der TextBoxes habe ich zur Zeit wieder gelöscht.
Wenn du hier aktiv werden möchtest, wäre ich sehr happy, etwas neues zu lernen - von dem ich bisher keine Ahnung habe.
Gruß, Peter
https://www.herber.de/bbs/user/4090.xls
AW: für K-Rola
05.03.2004 14:15:39
K.Rola
Hallo,
https://www.herber.de/bbs/user/4097.xls
Ich hab ein Modul und ein Klassenmodul eingefügt und knapp
kommentiert.
Du hast übrigens jede Menge unnötigen Ballast im Code, der könnte
um 1/3 kürzer sein.
Gruß K.Rola
Anzeige
AW: für K-Rola - danke
05.03.2004 15:05:03
Peter Feustel
Hallo K.Rola,
vielen Dank erstmal für deine Unterstützung.
Du hast neben dem Klassenmodul ‚clsControls’ und dem Modul ‚basPublic_KRola’ im UserForm_Initialize ein paar Zeilen Code eingefügt. Das war alles.
Was bewirkt das nun?
Ich habe nirgends eine Beschreibung zu Klassenmodulen und deren Besonderheiten gefunden, geschweige denn verstehe ich, was dein Code auslöst.
Was sollte ich deiner Meinung nach in meinem Code noch ändern, verbessern, bzw. Ballast abwerfen?
Ich bin für jeden Hinweis dankbar.
Vielen Dank für deine Hilfe.
Gruß, Peter
AW: für K-Rola
06.03.2004 11:40:52
Peter Feustel
Hallo K.Rola,

das Prinzip der Klassenmodule habe ich jetzt verstanden - wo aber kann ich mehr dazu erfahren!?
Wie schon geschrieben - Ballast abwerfen würde ich gern, wenn ich wüsste, was Ballast ist, bzw. besser zu machen wäre.
Gruß, und ein schönes Wochenende, Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige