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

Makros aus anderen Makros aufrufen

Makros aus anderen Makros aufrufen
20.12.2023 07:58:35
Florian
Hi

habe eine Frage zum Organisieren von Makros.

Ich habe einige Makros, die ich in jeweils eigenen Modulen gespeichert habe und von anderen Modulen der selben Datei aufrufe.
Jedes Makro kann ich zB mit "call Modul1.Makroname" oder einfach "call Makroname" aufrufen.

Kann man das so einrichten, dass das Makro nur wie im ersten Beispiel aufgerufen werden kann, also nur mit Modulnamen?
Denn so kann ich für Makros in verschiedenen Modulen gleiche Namen geben, und dennoch am Modulnamen erkennen, welches Makro gemeint ist.

Zum Beispiel: modVektoren.Summe und modFormeln.Summe soll aufrufbar sein, aber einfach Summe nicht.

Ist ein Modul ein Objekt? Kann man es einer Variablen zuordnen?

LG, Flo

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros aus anderen Makros aufrufen
20.12.2023 08:29:30
MCO
Moin!

Ich hab irgendwie im Hinterkopf, dass der Modulname zwingend benötigt wird, wenn du das Modul auf Private setzt.

Schreibe oben im Modul Option Private Module

Gruß, MCO
AW: Makros aus anderen Makros aufrufen
20.12.2023 10:30:55
Florian
Hallo MCO,
Dein Tipp "Option Private Module" ändert leider nichts. Ich glaube, dass die ganze Datei ein privater Bereich ist, in dem sich alle Module befinden.

Hallo onur,
Nein, das sind gleichnamige Makros mit unterschiedlichem Inhalt. Deshalb soll ja der Modulname zwingend vorgeschrieben sein.
Der Makroinhalt soll sich zusammen im Makronamen und Modulnamen wiederspiegeln, zB: modGeo.Mittelwert und modArithmetik.Mittelwert.
Das kommt daher, weil ich die Module modGeo und modArithmetik als Ganzes aus anderen Dateien hineinkopiere, wenn ich daraus Makros brauche. Finde ich praktisch, macht bei gleichnamigen Makros allerdings Schwierigkeiten. Daher meine Frage.

LG, Flo
Anzeige
AW: Makros aus anderen Makros aufrufen
20.12.2023 12:07:48
MCO
Hey Florian!

Passend zu der Anmerkung von Oberschlumpf (Thorsten) und Onur:
Wahrscheinlich machen die Subs alle das gleiche, nur im Detail anders.

Bau dir eine Sub mit Eingangsparameter
Sie dann etwas so aus:

Sub Summe (Bereich as range)


ausgabewert = worksheetfunction.sum(bereich)

end sub


oder eine Function, die ähnlich arbeitet:

Public function Summe (Bereich as range)


Summe = worksheetfunction.sum(bereich) 'muss der Funktion zugewiesen werden!

end sub


Gruß, MCO
Anzeige
AW: Makros aus anderen Makros aufrufen
20.12.2023 10:47:44
Oberschlumpf
Hi Florian,

gib deinen Makros einfach - sprechende/eindeutige - Namen!

Nenn sie z Bsp

SummeVek = kommt aus dem Modul modVektoren
SummeFml = kommt aus dem Modul modFormeln
MittelwertGeo...
MittelwertArith...
usw...

Da kannst du dann jedes Makro von egal woher aufrufen - und den Call-Befehl brauchst du auch nicht.
Ja, ich weiß, dein "Copy+Paste" aus anderen Modulen war bisher so schönb einfach - aber bei deinem VBA-Basiswissen ist n bisschen zusätzliche Tipparbeit auch nicht falsch, auch damit lernst du dazu.
Und...es ist auch nicht zielführend, wenn mehrere Makros den selben Namen haben - du merkst es - nich nur du, auch VBA kann damit durchnander kommen.

Ciao
Thorsten

Anzeige
AW: Makros aus anderen Makros aufrufen
20.12.2023 15:08:13
Florian
Hallo Oberschlumpf,
"gib deinen Makros einfach - sprechende/eindeutige - Namen! "
Ja, das mache ich ja zur Zeit.
"Und...es ist auch nicht zielführend, wenn mehrere Makros den selben Namen haben "
Doch, in meinem Fall ist es das. Und das ist die Ausgangssituation meiner Frage hier.

Das mit der Summe war nur ein Beispiel. Ein anderes wäre Makros zum Berechnen von Volumen, Oberfläche, Eigenträgheitsmoment, usw. von Würfel, Quader, Kugel, pyramidenfürmiges Pentagon, usw.
Für jede Figur habe ich ein Modul. Die erforderlichen Module für ein konkretes Projekt kopiere ich dann in das Projekt-workbook. In jedem Modul stehen functions mit einem Namen, der beschreibt, was errechnet wird bezüglich der Figur, der dieses Modul zugeordnet ist. Deshalb möchte ich mir die Figur im Makronamen ersparen, wo sie doch in einem Modul mit diesem Namen steckt.
Sicher, ich könnte für jedes eine Klasse bilden, dann könnte ich gleichnamige Variable parallel verwenden.
Ich dachte nur, es gibt, bzw. ihr kennt dazu eine Lösung, ohne Klassen.

LG, Flo
Anzeige
AW: Makros aus anderen Makros aufrufen
20.12.2023 15:24:20
Oberschlumpf
Hi Florian,

Klassen sind hier auch gar nicht erforderlich - aber du wirst es ja wissen.
MCO hatte auch noch n guten Tipp:

Wenn z Bsp das Volumen für viele Formen berechnet werden soll, dann benötigst du nur...
- ein einziges Makro mit der grundsätzlichen Berechnung (die notwendige Formel Länge*Höhe*Breite)
- aber die notwendigen Werte zur Berechnung werden an das Makro als Parameter übergeben

Für viele Formen benötigst du also - nicht - viele Makros zur Volumenberechnung (sogar das Volumen einer Kugel kann im selben Makro wie für Quader,Würfel,etc berechnet werden = is halt nur abhängig von den mitgegebenen Parametern)

Das Gleiche gilt für andere Berechnungen, z Bsp Flächen, Längen, was es noch so gibt...

Ciao, weiter viel Erfolg
Thorsten
Anzeige
AW: Makros aus anderen Makros aufrufen
20.12.2023 18:56:38
Florian
So einfach ist das aber nicht. Da will ich auch nicht mit Tipparbeit was lernen, sondern eine möglichst effiziente Lösung suchen. Kugeln, Würfel und Pyramiden sind nur Beispiele. Im Wirklichkeit sind es Rohrkrümmer, I-Träger, Kühlpaneele und einige andere. Und für jeden Teil gibt es ein Modul. Da kann es schon mal zu Namensgleichheiten in den Makros kommen.

Mein Problem habe ich geschildert. Vielleicht gibt es noch Ideen dazu. Übrigens, Verweise auf externe Dateien schließe ich aus, alle erforderlichen Makros sind in der Datei selbst.

Danke und LG, Flo
AW: Makros aus anderen Makros aufrufen
20.12.2023 09:07:55
onur
Die Frage ist: WARUM haben die Subs alle den gleichen Namen? Machen sie denn das Selbe?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige