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

VBA Code aus anderen Modulen nutzen

VBA Code aus anderen Modulen nutzen
08.04.2021 11:19:33
Daniel
Hallo Zusammen,
ich nutze eine Userform mit vielen "Pages" und habe daher auch wahnsinnig viel Code.
Nun würde mich interessieren, ob ich einzelne Codeblöcke in Module auslagern kann um diese dann "aufzurufen".
Ich meine nicht die CALL Funktion
Ich möchte eher den unübersichtlichen Code "aufräumen".
Ich habe beispielsweise 200 Label Captions die ich gerne in ein "eigenes" Modul parken würde, um spätere Änderungen leichter vornehmen zu können.
Ist das denn überhaupt möglich, was ich da möchte?
Falls ja, wie wäre der Ansatz einen solchen Codeblock aufzurufen?

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Code aus anderen Modulen nutzen
08.04.2021 11:30:25
ralf_b
klar ist das möglich. aber entschuldige die Frage, du hast sehr viel Code aber wenig Ahnung von den Gültigkeitsbereichen von Variablen oder Funktionen? Wie geht das?
AW: VBA Code aus anderen Modulen nutzen
08.04.2021 11:36:49
Daniel
Nun ja, ich habe von Programmierung wirklich nicht viel Ahnung und bastel mir eben zusammen was ich brauche.
Ob das alles so richtig ist, weis ich auch nicht immer, aber es funktioniert für meine Zwecke.
Ich bin halt kein Programmierer ... nur Schreibtischtäter der Unmengen an Daten verarbeiten muss :-(
AW: VBA Code aus anderen Modulen nutzen
08.04.2021 11:51:02
ralf_b
Alternativ kannst du public Variablen oder Konstanten im Modul definieren und diese dann in den Userformen den Captions zuweisen.
Ich persönlich halte es für unschön wenn Userformelemente außerhalb des Userformmodules verändert werden.
https://www.herber.de/vbabasics/0001.html#G.C3.BCltigkeit_von_Variablen_und_Konstanten
Anzeige
AW: VBA Code aus anderen Modulen nutzen
08.04.2021 11:41:52
Daniel
Hi
Automatische Event-Makros (Change, Click) müssen im Modul der Userform bleiben.
allerdings könntest du dann von dort aus Makros in einem anderen Modul aufrufen, wenn du den Code zum Zwecke der besseren Übersichtlichkeit in mehrere Module verteilen willst
Sollte Code aus einem allgemeinen Modul (nur von diesen kannst du mehrere erstellen) mit den Steuerelementen der Userform arbeiten, so musst du immer den Userform-Namen voranstellen.
im Userform-Modul reicht:
Label1.Capiton = "Hallo Welt"

in einem allgemeinen Modul brauchst du dann:
Userform1.Label1.Caption = "Hallo Welt"

Gruß Daniel
Anzeige
AW: VBA Code aus anderen Modulen nutzen
08.04.2021 11:48:57
Daniel
wenn ich folgendes im Userform Activate Bereich einbinde bekommen meine Labels den entsprechenden Namen verpasst

Dim labelnew1
labelnew1 = "Label 1 Name"
Me.Label1.Caption = labelnew1
Für 200 Labels ist das wahnsinnig viel Code ; da ja noch viel viel mehr dazu kommt.
Nun habe ich genau diesen Code in eine eigene Sub gepackt. Nun versuche ich das Sub in der Activate aufzurufen, was mir aber nicht gelingt.
Mit CALL erhalte ich die Meldung: Fehler beim kompilieren ; Variable oder Prozedur anstelle eines Moduls erwartet
Wo liegt mein Fehler?
Anzeige
AW: VBA Code aus anderen Modulen nutzen
08.04.2021 12:05:54
Daniel
Hi
bei der Fehlermeldung hast du wahrscheinlich für Modul und Prozedur den selben Namen verwendet
Prozedur und Modul sollten immer unterschiedliche Namen haben, sonst kommt der Compiler durcheinander.
Es ist zwar möglich, eine Prozedur genauso zu benennen wie ein Modul, aber in diesem Fall muss man bei einem Aufruf mit Call vollständig referenzieren, dh.
Call Modulname.Prozedurname

das verkürzte
Call Prozedurname

funktioniert nur, wenn alle Prozedur- UND Modulnamen eindeutig sind.
dass du das ME durch den Userformnamen ersetzen musst wenn die Prozedur in einem allgemeinen Modul liegt, hast du hoffentlich beachtet.
Gruß Daniel
Anzeige
AW: VBA Code aus anderen Modulen nutzen
09.04.2021 10:35:20
Daniel
Hallo Daniel,
ja, das habe ich alles beachtet; auch den Modulaufruf habe ich korrekt gemacht.
Den Fehler habe ich eben auch gefunden ...
Ich hatte für ein Label bereits den Namen angelegt, obwohl das Label noch nicht in der Userform erstellt war. Dadurch habe ich dann die Fehlermeldung erhalten.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige