Microsoft Excel

Herbers Excel/VBA-Archiv

Aufruf Macro aus anderer Arbeitsmappe | Herbers Excel-Forum


Betrifft: Aufruf Macro aus anderer Arbeitsmappe von: pbaer007
Geschrieben am: 03.01.2012 10:54:06

Hallo VBA-Gemeinde,

mit einem Macro in einer Arbeitsmappe (varFile1) wird eine zweite (varFile2) geöffnet.
Ich möchte nun innerhalb des Macros (aus varFile1) auf Proceduren in varFile2 zugreifen und diese aufrufen (z.Bsp.: mcr_Hintergrund).

Kann mir jemand einen Tip geben, wie es geht, oder wo ich suchen muss?

Vielen Dank
Gert

  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: Reinhard
Geschrieben am: 03.01.2012 11:00:19

Hallo Gert,

Sub tt()
Application.Run "Mappe2!MeinMakro"
End Sub

Gruß
Reinhard


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: pbaer007
Geschrieben am: 03.01.2012 12:37:28

Hallo Reinhard,

vielen Dank für die schnelle Antwort.
Jedoch bekomme ich die Fehlermeldung "Objekt unterstützt nicht ...."
Soweit ich in der Hilfe gesehen haben, kann ich keine Werte bei diesem Weg an die Prozedure übergeben.
Gibt es evtl. auch eine andere Möglichkeit?

Hier sind 2 Beispiele:

 Application.Run Workbooks(varFile2)!PosNo1(varFile2)
Application.Run Workbooks(varFile2)!Wait(5)
Vielen Dank & viele Grüße
Gert


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: Reinhard
Geschrieben am: 03.01.2012 12:49:44

Hallo Gert,

Sub tt()
Application.Run "Mappe2!MeinMakro", "huhu"
End Sub

Gruß
Reinhard


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: Rudi Maintaire
Geschrieben am: 03.01.2012 12:51:07

Hallo,
Application.Run varFile2 &"!PosNo1", varFile2

und Wait solltest du nicht als Prozedurnamen verwenden, da VBA-Methode!

Gruß
Rudi


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: pbaer007
Geschrieben am: 03.01.2012 13:31:38

Hallo Rudi & Reinhard,

zunächst vielen Dank Rudi für den Hinweis mit VBA-Methode "Wait". Das hätte ich mal etwas früher wissen sollen. Ich werde mich gleich mal dran setzten, das zu ändern.


Und dann natürlich auch vielen Dank an Dich & Reinhard

für die genaue Lösungsbeschreibung, hab ich ausprobiert, aber immer noch kein Glück damit. Jetzt bekomme ich den Laufzeitfehler, dass das Macro nicht in der Mappe enthalten ist, oder deaktiviert ist.
Wenn ich aber direkt in der neu geöffneten Mappe (varFile2) ein Macro ausführe, dann funktioniert es.
Die Mappe wird mit

    Path = Application.GetOpenFilename
    Workbooks.Open Filename:=Path

geöffnet.

Habt Ihr noch einmal einen Tip für mich ??

Sorry
Gert


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: Reinhard
Geschrieben am: 03.01.2012 13:44:42

Hallo Gert,

was mir noch auffiel, einem Makro brauchst du den Namen seiner mappe nie als Parameter mitübergeben.
Mit "Thisworkbook" kennt es den.

Steht das Makro in einem Standardmodul? Wird Private benutzt im Prozedurkopf?

Ggfs. lade eine Beispielmappe hoch.

Gruß
Reinhard


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: Rudi Maintaire
Geschrieben am: 03.01.2012 13:56:37

Hallo,
einem Makro brauchst du den Namen seiner mappe nie als Parameter mitübergeben
und wenn das Makro einen Parameter will?

Sub xxx(strWkb as String)
  Msgbox strWkb
End Sub

Gruß
Rudi


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: pbaer007
Geschrieben am: 03.01.2012 15:54:10

Hallo Reinhard und Rudi

ich wollte 2 Beispiel-Dateien vorbereiten. Und da funktioniert es, obwohl ich die Macros nur kopiert habe.
Dann werd ich mich noch einmal auf die Spurensuche begeben, woran es noch liegen könnte, da auch keine ersichtlichen Unterschiede in den Modulen zu erkennen sind.

File 1 (mit dem File 2 aufgerufen wird)
https://www.herber.de/bbs/user/78193.xlsm

File 2
https://www.herber.de/bbs/user/78194.xlsm

Natürlich freue ich mich über jeden Hinweis, wo das Problem versteckt sein könnte.
ABER VIELEN, VIELEN Dank soweit.
Gert


  

Betrifft: AW: Aufruf Macro aus anderer Arbeitsmappe von: Rudi Maintaire
Geschrieben am: 03.01.2012 13:53:49

Hallo,
Path enthält ja den Pfad der Datei. Außerdem solltest du auch Path nicht als Variablennamen verwenden, da eine Eigenschaft. Nimm strPath oder so.

strPath = Application.GetOpenFilename
Workbooks.Open Filename:=strPath
varFile2=ActiveWorkbook.Name
Application.Run varFile2 &"!MeinMakro", Parameter
Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Aufruf Macro aus anderer Arbeitsmappe"