Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
328to332
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
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro aus anderer Datei aufrufen

Makro aus anderer Datei aufrufen
27.10.2003 10:43:16
Dennis Zach
Hallo Alle!

Ich möchte aus einer Datei_A eine andere Datei_B öffnen und dann ein Makro der Datei_B laufen lassen. Wie muss denn da der Aufruf erfolgen.

Öffnen tue ich so:
Workbooks.Open Filename:= _
"\\ordner1\ordner2\Datei_B.xls" , UpdateLinks:=0

'und jetzt brauch ich hier den Aufruf für die Methode Graphik_erstellen

Ich dachte nach dem Öffnen der Datei_B wäre sie aktiv und man könnte die Methode einfach mit der Namensangabe aufrufen, aber das funktioniert nicht (Sub oder Funktion nicht definiert)

Kann mir jemand helfen?
Dennis

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.Run
27.10.2003 10:47:01
ChrisL
Hi Dennis

Application.Run "Mappe!Makro"

Gruss
Chris
AW: Application.Run
27.10.2003 11:00:55
Danke! .. und noch ne Frage ;-)
Hey Chris,

danke...
Hab da noch ne Frage, also falls Du Zeit hast, wär ich Dir sehr dankbar:

Das Makro, das ich aufrufe, öffnet ein Formular, das vom Benutzer die Auswahl eines Monats und eines Jahres verlangt, um weiterrechnen zu können.
Wie kann ich das Makro mit Application.Run"Datei_B!Makro1"
aufrufen und schon feste Werte für Monat und Jahr mitgeben, so dass das Öffnen des Formulars nicht geschehen muss?!

Geht das?

Hintergrund ist folgendes:

Datei_A muss nacheinander insgesamt 15(vom Aufbau gleiche)Dateien öffnen und jeweils das Makro ausführen und immer mit dem gleichen Monat und Jahr.
Ich möchte natürlich vermeiden, dass der Ausführer des Makros 15x hintereinander die Auswahl treffen muss, und evtl. auch mal was falsches auswählt...
Ich möchte gerne einmal vorneweg die Monats- und Jahresauswahl treffen, diese Werte speichern und sie jedesmal, sozusagen als Parameter an das Makro übergeben.

Kannst Du mir folgen und was raten?

Dennis
Anzeige
Public Variable
27.10.2003 11:21:16
ChrisL
Hi Dennis

Es gibt verschiedene Wege, um Variablen von einer Prozedur in die andere zu übergeben, z.B. so...

Option Explicit


Sub TEST1(strMonat As String, intJahr As Integer)
MsgBox strMonat & " " & intJahr
End Sub



Sub TEST2()
Call TEST1("Januar", 2003)
End Sub


Da du allerdings sagst, dass du 15 verschiedene Prozeduren ansprichst, ist vermutlich das einfachste, wenn du die Variablen als Public (in einem Standardmodul) deklarierst...

Public strMonat As String

Gruss
Chris
Anzeige
Geht's auch so?
27.10.2003 11:43:50
Dennis
Hey Chris,

ich hab mir gedacht ich mach das so:

Sub Makro1(Optional datumsvariable as Variant)
'jetzt will ich hier ne Abfrage machen:
'IF Parameterübergeben: dann benutze ihn,
'ELSE zeige das Auswahlformular

If IsEmpty(datumsuebergabe) Then

Monatswahl.Show
Else 'Es wurde ein Datum als Parameter übergeben, also benutze diesen Wert
gewaehlter_monat = datumsuebergabe
End If

Exit Sub

Problem ist aber, dass er das nicht akzeptiert, wenn kein Parameter übergeben wird.
datumsuebergabe ist dann ja leer und ich krieg für die vorvorletzte Zeile immer die Meldung: Typen unverträglich.

Wie kann ich denn das umgehen, dann wär der Rest nämlich (glaub ich zumindest) recht einfach...

Dennis
Anzeige
AW: Geht's auch so?
27.10.2003 11:58:25
ChrisL
Hi Dennis

Leider habe ich den Überblick betr. deinem Projekt nicht ganz. Hast du von der Struktur her eine art 'Master-Prozedur' aus der heraus du die 15 anderen Prozeduren aufrufst d.h.

Master ruft Prozedur 1 auf
Master ruft Prozedur 2 auf
etc.

oder

Master ruft Prozedur 1 auf
Prozedur 1 ruf Prozdur 2 auf
etc.

Ich frage mich nämlich, wieso du die Datumseingabe nicht einfach im 'Master' erzwingst, dann ist das Argument nicht mehr optional. Ferner würdest du dir Code sparen, da du nicht in jeder Prozdedur einzeln die Abfrage machen musst.

Gruss
Chris
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige