Clever-Excel-Forum

Normale Version: VBA Modulname ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Liebe Gemeinde,

kann man den Modulnamen in einem VBA Projekt ohne weiteres ändern, ohne die Funktion der jeweiligen Module zu gefährden. Z.B. Airbusflotte anstelle von Modul 1 oder Boeingflotte anstatt Modul 2 und so weiter.

Hintergrund:  Ich habe in meiner Datei teilweise 50 Module und verliere langsam den Überblick, in welchem Modul welche Funktion verborgen ist.

Ein Name, der den Bezug zur Aufgabe liefert würde helfen. Könnte ich mehrere Module, die eine ähnliche Funktion haben, zusammenlegen, ?

Gruß
Harald
Was hindert dich daran, es einfach mal auszuprobieren? So allgemein gestellte Fragen beantwortet man sowieso immer mit: „Kommt drauf an.“

Nur Prozeduren, die einer Klasse gehören, müssen im Klassenmodul eben der Klasse stehen. Alle anderen kannst du beliebig in Standardmodulen anordnen, solange die Namen eindeutig sind und die Sichtbarkeit (Private, Public) gegeben ist. 

Rufst du Prozeduren qualifiziert auf, also per (Projekt.)Modulname.Prozedurname (absolut zu empfehlen!), dann musst du eben mal projektweit Suchen&Ersetzen

Wie du dein Projekt strukturierst, ist dir also mehr oder weniger freigestellt.
Hi HyFly,

solange Du keinen expliziten Modulverweis beim Aufruf der darin enthaltenen Sub's oder Functions hast, kannst Du sie bedenkenlos umbenennen.

Bsp.
In Modul1 hast Du eine Funktion Namens x:

Code:
Function x(y As Integer) As Integer
    x = y + 2
End Function

In Modul2 rufst Du die so auf:

Code:
Sub s()
Dim c As Integer
c = Modul1.x(3)
End Sub

Benennst Du aber Modul1 jetzt um, z, Bsp. in modFunktionen, dann funktioniert der Aufruf nicht mehr.
Abhilfe:
a) Du passt den Aufruf mit korrigiertem Verweis an: 
Code:
c = modFunktionen.x(3)
 oder Du lässt
b) die Referenz weg 

Code:
c = x(3)
allerdings kannst Du dann nur eineindeutige Funktions- und Prozedurnamen in allen Modulen verwenden. Das ist allerdings kein Nach- sondern eher ein Vorteil, denn das vermindert die Verwechslungsgefahr.
Klar kannst Du mehrere Module mit ähnlichen Funktionen zusammenlegen. Das ist sogar recht sinnvoll. Aber immer unter Beachtung des oben gesagten...
Aber, warum würde nur 1 Algemeines Makromodul nicht reichen ?
Die Module sind alle durch den Makrorecorder erstellt worden. Das ganze über mehrere Sitzungen. (hat glaube ich 6 Wochen gedauert, bis ich alles so hatte.)
Und nun, da ich tiefer in die VBA Materie einsteige, habe ich festgestellt, dass es mehr als 50 Module sind. Für fast jedes Makro ein eigenes Modul.

Es ist auch müßig darüber nachzudenken, ob man es hätte besser machen können. Ich bin sicher, man hätte!
Nun geht es darum die Unübersichtlichkeit übersichtlich zu gestalten.

Aus den Antworten entnehme ich, es geht, solange die Module die gleiche "Machart" haben.

Ich wollte nur eine Expertenmeinung bevor ich irgendetwas rumprobiere und dann feststellen muss, es geht so nicht.

War ein Versuch wert.
Es wäre besser die Makros umzubenennen und in nur 1 Modul zu speichern
In der Name eines Makros kann man ihre Funktion andeuten, z.B.

Code:
Sub M_snb_copy()

End Sub

Code:
Sub M_snb_arbeitsblatt_neu()

End Sub

Code:
Sub M_snb_datei_speichern()

End Sub
(12.12.2023, 15:11)snb schrieb: [ -> ]Es wäre besser die Makros umzubenennen und in nur 1 Modul zu speichern

Warum?
Moin!
Ich reibe gerade an meiner Glaskugel …
… und sehe, dass sich die aufgezeichneten Makros so sehr ähneln, dass eine Parametrisierung sinnvoll erscheint.
Und jetzt ist sie wieder blind, die Kugel.

Gruß Ralf
(der sich die Makros gerne mal anschauen würde)
@Kuw


Zitat:Nun geht es darum die Unübersichtlichkeit übersichtlich zu gestalten.
Hallo

bei 50 Modulen und mindestens gleich vielen Makros sollte man zuerst mal einen Überblick bekommen.
Mit dieser Datei,  die ich für mich selbst entwickelt hatte, kann man einen ganzen Ordner auflisten.
In Tabelle1 alle Makros nebeneinander oder untereinander sehen, und in Tabelle2 speichern.
Stellt man AutoCopy auf "Ja", listet er automatisch einen ganzen Ordner auf.

Ich denke damit kann er schnell entscheiden welche Module überflüssig sind, und gelöscht werden können.
Es ist nur eine alte mini Version.  Ich hoffe sie hilft ihm weiter.

mfg Gast 123
Seiten: 1 2 3