Legt man dann die Prozeduren unter einem eigenen Modul an?
Das kommt darauf an...
Wofür ist die jeweilige Prozedur "zuständig"?
Eine Prozedur die sehr eng an ein bestimmtest Formular gebunden ist, sollte im Klassenmodul dieses Formulars bleiben. Sie ist dann nur verfügbar, wenn dieses Form auch geladen ist. Sie hat aber unmittelbaren Zugriff auf die Eigenschaften und Steuerelemente des jeweiligen Formulars.
Eine Prozedur in einem allgemeinen Modul ist immer und von überall erreichbar. Die hat aber keinen direkten Zugriff auf die Eigenschaften und Steuerelemente der jeweiligen Formulare. Diese (oder das Formular selbst) müssen (sollten) bei Bedarf als Argumente an die Prozedur übergeben werden
Kannst Du mir bitte noch sagen, wie ich eine Prozedur in einem anderen "Klassenobjekt" (Modul?) ansprechen kann?
Hier musst du zwischen Allgemeinen Module, die du im VBA-Projektexplorer unter "Module" siehst, und Klassenmodulen, im VBA-Projektexplorer unter "Klassenmodule" oder die Module von Formularen und Berichten, unterscheiden.
Prozeduren in Allgemeinen Modulen sind immer und von Überall zu erreichen. Der Aufruf einer Prozedur aus einem solchen funktioniert auch genauso wie oben gezeigt.
Code in Klassenmodulen bezieht sich immer auf eine Instanz, d.h. ein Objekt, der jeweiligen Klassen. Von innerhalb der Klassen erfolgt der Aufruf auch genauso wie gezeigt. Von ausserhalb brauchst du immer einen Verweis auf die Objektinstanz der Klasse und rufst dann ihre Methoden (Prozeduren und Funktionen) auf.
Objektinstanz.Prozedurname()Beachte auch die Sichtbarkeit der Prozeduren.
Private Prozeduren sind nur innerhalb des Moduls in dem sie deklariert wurden sichtbar.
Public Prozeduren sind auch von aussen sichtbar,
Zum Einstieg verweise ich auch noch auf das
VBA-Tutorial von Martin Asal.