Thema Datum  Von Nutzer Rating
Antwort
25.03.2019 20:18:26 Jerome
NotSolved
25.03.2019 20:43:58 AlterDresdner
NotSolved
25.03.2019 21:45:37 Jerome
NotSolved
27.03.2019 10:41:16 AlterDresdner
NotSolved
28.03.2019 21:30:14 Gast75797
NotSolved
30.03.2019 14:10:12 Steffen Spanknebel
NotSolved
30.03.2019 19:00:18 AlterDresdner
NotSolved
31.03.2019 08:57:12 woswasi
NotSolved
03.04.2019 21:34:43 Jerome
NotSolved
12.04.2019 19:29:42 Gast84746
NotSolved
Rot Code vereinfachen und schlanker gestalten
13.04.2019 10:17:59 Gast12748
NotSolved
13.04.2019 18:24:33 Gast14690
NotSolved
19.04.2019 03:50:56 Gast34284
NotSolved
Blau Blau ...
19.04.2019 13:18:57 Gast69160
NotSolved

Ansicht des Beitrags:
Von:
Gast12748
Datum:
13.04.2019 10:17:59
Views:
468
Rating: Antwort:
  Ja
Thema:
Code vereinfachen und schlanker gestalten

Wenn man z.b. die Namen systematisch vergibt, à la ... (Beispiel)

CheckBox1 < - > TextBox1_1, TextBox1_2 | ComboBox1_1 | DateBox1_1

CheckBox2 < - > TextBox2_1, TextBox2_2 | ComboBox2_1 | DateBox2_1

usw.

... kann man die Controls dann zur Laufzeit mappen, d.h. per Klassen-Programmierung einen Wrapper schreiben, der eigene Events bereit stellt (Click, Change, etc. auf eine CheckBox oder ein anderes beliebiges gemapptes Control) und so den Code leserlicher/verinfacht gestaltet. Allerdings nicht ohne vorher einiges an Manpower reinzustecken. Der Code wird dadurch zwar leserlicher/kompakter, aber nicht zwingend kürzer.

 

Ich will dir damit nur sagen, es gibt hier schon elegante Lösungen, aber nichts was mal in 30 Minuten runtergehackt wäre.

 

Grüße

 

PS: Mit Wrapper ist gemeint, dass man dann kein

Private Sub CheckBox1_Click()

End Sub

Private Sub CheckBox2_Click()

End Sub

Private Sub CheckBox3_Click()

End Sub

usw. mehr hat, sondern ein Event der diese drei (oder mehr) in einem einzigen Event bündelt:

Private WithEvents MyControlWrapper As VBAProject.MyControlWrapper 'Member-Variable mit Zugriff auf dessen bereitgestellte Events deklarieren

'...

Private Sub MyControlWrapper_OnClick(ByVal Control As MSForms.Control)

End Sub

Control ist, dem obigen Beispiel weiter folgend, dann entweder CheckBox1, CheckBox2 oder CheckBox3 - je nachdem auf welches Control gerade geklickt wurde.

Jetzt kann man hier natürlich den Funktionskopf noch erweitern, sodass man z.B. auch alle auf diese CheckBox gemappten Controls (ich nenne sie mal ControlSubs) mitbekommt.

Private Sub MyControlWrapper_OnClick(ByVal Control As MSForms.Control, ByVal ControlSubs As Variant)

End Sub

ControlSubs kann hier je nach Implementierung irgenwas sein, eine VBA.Collection, ein Array, oder was auch immer man möchte. Das ist einem frei überlassen.

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
25.03.2019 20:18:26 Jerome
NotSolved
25.03.2019 20:43:58 AlterDresdner
NotSolved
25.03.2019 21:45:37 Jerome
NotSolved
27.03.2019 10:41:16 AlterDresdner
NotSolved
28.03.2019 21:30:14 Gast75797
NotSolved
30.03.2019 14:10:12 Steffen Spanknebel
NotSolved
30.03.2019 19:00:18 AlterDresdner
NotSolved
31.03.2019 08:57:12 woswasi
NotSolved
03.04.2019 21:34:43 Jerome
NotSolved
12.04.2019 19:29:42 Gast84746
NotSolved
Rot Code vereinfachen und schlanker gestalten
13.04.2019 10:17:59 Gast12748
NotSolved
13.04.2019 18:24:33 Gast14690
NotSolved
19.04.2019 03:50:56 Gast34284
NotSolved
Blau Blau ...
19.04.2019 13:18:57 Gast69160
NotSolved