Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro in der aktiven Arbeitsmappe aufrufen

Makro in der aktiven Arbeitsmappe aufrufen
21.06.2006 11:01:42
Peter
Guten Tag
Ich habe in File xx.xls ein Makro mit dem Namen "ATabellenschutz_deaktivieren_alle"
Im Moment it File yy.xls aktiv
Nun möchte ich aus dem File xx.xls das Makro aufrufen, das wiederum ein Makro aus File yy aufruft.
Wie schaffe ich die Verknüpfung?
Ich nehme an, dass ich am Anfang den Namen des aktiven Files einer Variablen übergeben und diese Variable dann anschliessend an "Application.run " einfüge. Aber wie geht das genau?
Danke für einen Hinweis.
Peter
Dim stractivesheet As String
stractivesheet = ActiveSheet.Name
Application.Run "ATabellenschutz_deaktivieren_alle"

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro in der aktiven Arbeitsmappe aufrufen
21.06.2006 11:24:40
u_
Hallo,
Application.Run "xx.xls!ATabellenschutz_deaktivieren_alle"
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Makro in der aktiven Arbeitsmappe aufrufen
21.06.2006 12:07:54
Peter
Hallo u_
Danke für das Feedback.
Nun heisst die aktive Datei nicht immer xx.xls weshalb der aktuelle Name einer Variablen übergeben werden muss, damit es bei anderen Dateien auf funktioniert.
Gruss, Peter
AW: Makro in der aktiven Arbeitsmappe aufrufen
21.06.2006 17:26:55
IngGi
Hallo Peter,
folgendes Konstrukt habe ich bei mir - leider erfolglos - getestet:
2 Prozeduren in Mappe1.xls, Modul1:

Sub x()
Application.Run "Mappe2.xls!y", ThisWorkbook.Name
End Sub

Sub z()
MsgBox "OK"
End Sub
1 Prozedur in Mappe2.xls, Modul1:

Sub y(strDateiname As String)
Application.Run "[" & strDateiname & "]!z"
End Sub
Hierbei ruft die Prozedur x() in Mappe1.xls die Prozedur y() in Mappe2.xls auf und übergibt dabei ihren Dateinamen in die Variable strDateiname. Der Aufruf der Prozedur z() in Mappe1.xls von y() in Mappe2.xls funktioniert dann aber leider nicht. Excel aktiviert bei mir zwar wieder die Mappe1.xls, bricht dann aber die Makroausführung komplett ab. Daher folgender Vorschlag:
Rufe aus der Prozedur x() in Mappe1.xls die Prozedur y() in Mappe2.xls auf, ohne den Dateinamen von Mappe1.xls zu übergeben. Alles was in Prozedur y() nach der Stelle kommt, wo du die Prozedur z() aufrufen willst, verschiebst du in eine neue Prozedur a() in derselben Mappe (Mappe2.xls).
Nach Abarbeiten der Prozedur y() in Mappe2.xls geht die Kontrolle automatisch wieder an die Prozedur x() in Mappe1.xls zurück. Von dort kannst du nun die Prozedur z() einfach aufrufen, da diese sich nun in derselben Arbeitsmappe befindet. Nach Abarbeiten der Prozedur z() geht die Kontrolle wiederum zurück an die Prozedur x(). Von dort kannst du nun die Prozedur a() in Mappe2.xls aufrufen, die den Rest der ursprünglichen Prozedur y() abarbeitet.
Gruß Ingolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige