Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Prozedur zu groß

Begonnen von Mr. Ahnungslos, Februar 16, 2013, 19:55:49

⏪ vorheriges - nächstes ⏩

Mr. Ahnungslos

Hallo,

im Netz konnte ich schon ein bisschen was zu dem Thema googeln, so ganz verstehe ich aber noch nicht, wie das Aufteilen einer zu großen Prozedur funktionieren soll.

Die Sub wird über ein button-click aufgerufen und muss diverse Einstellungen an einem Formular vornehmen. Mein aktueller Aufbau sieht im Wesentlichen grob so aus:

1. Diverse Objekte bekommen ihre Positionen zugewiesen
2. Sichtbarkeiten der Objekte wird abgeschaltet
3. mittels "Select Case" werden 5 Szearien durchlaufen
4. In jedem der Szenarien werden die Positionen aus "1" neu vergeben und durch eine Vielzahl von "If-then-Else"-Abfragen die Sichtbarkeiten wieder eingeschaltet

Wichtig ist, dass die gesamte Prozedur bei jedem Klick-Ereignis komplett durchläuft.

Wie kann ich das jetzt so aufteilen, dass die Prozedur nicht zu groß wird?

Schon mal vorab vielen Dank für Eure Hinweise!

Michael

bahasu

Hi,

Vielleicht hilft es, wenn Du Teile der Schritte in eigne sub's verschiebst: z.B. zu 1:
call Positionen_einstellen steht in Deiner Sub und in "Positionen_einstellen" stehen die dazu passenden Befehle.

zu 2:
Nutzt Du dafür Befehle in der Art "Me.DeinFeld.visible= false" usw....
oder nutzt Du eine For Each Schleife? Bei vielen Steuerfeldern ist der Schleifen-Konstrukt kürzer.

Bedeutet "zu groß", dass eine Fehlermeldung autritt oder willst Du "nur" die Übersichtlichkeit verbessern?

Harald
Servus

Mr. Ahnungslos

Hallo Harald,

das mit dem "call"-Befehl hört sich für mich ganz gut an. Meine sehr begrenzten VBA-Kenntnisse habe ich mir nur angelesen, daher bin ich immer dankbar für die verständliche Erklärung von Befehlen und deren Funktion.

ZitatNutzt Du dafür Befehle in der Art "Me.DeinFeld.visible= false" usw....
oder nutzt Du eine For Each Schleife? Bei vielen Steuerfeldern ist der Schleifen-Konstrukt kürzer.

Ich nutze die Version "Me.DeinFeld.visible= false". Die For each-Schleife kenne ich nicht, aber wie oben gesagt bin ich für Hinweise dankbar.

Beste Grüße

Michael

bahasu

Hallo Michael,

im Anhang findest Du ein Formular mit einem Options-Button.
Wenn dieser angeklickt wird, wird eine sub aufgerufen, der ein Parameter übergeben wurde.
Je nach übergebenem Parameter wird in der aufgerufenen sub innerhalb einer for each Schleife die Sichtbarkeit ein- bzw. ausgestellt.
Die Vorgabe, ob ein Feld ausgeblendet werden soll, ist in der Steuerelement-Eigenschaft "Marke" (siehe Reiter "Andere") hinterlegt.

Harald

[Anhang gelöscht durch Administrator]
Servus