Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Modulname ändern
#1
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
Antworten Top
#2
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.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#3
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...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#4
Aber, warum würde nur 1 Algemeines Makromodul nicht reichen ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
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.
Antworten Top
#6
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
(12.12.2023, 15:11)snb schrieb: Es wäre besser die Makros umzubenennen und in nur 1 Modul zu speichern

Warum?
Antworten Top
#8
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)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
@Kuw


Zitat:Nun geht es darum die Unübersichtlichkeit übersichtlich zu gestalten.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
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


Angehängte Dateien
.xls   VBA Makros auflisten Spz 3 mini.xls (Größe: 268 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Ralf A
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste