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

Variable aus anderer Datei holen

Variable aus anderer Datei holen
12.12.2022 09:16:21
Tomek
Moin zusammen,
ich habe eine Excel-Datei mit etwas VBA-Code, aus dem heraus eine weitere Datei geöffnet wird. Es werden Variablen an ein dortiges Makro übergeben. Nachdem dieses Makro sein Hexenwerk getan hat, würde ich nun gerne ein paar neue Variablen zurück an das Makro der ersten Datei übergeben. Das gleiche Prinzip wie bei der Übergabe Sheet1 zu Sheet2 kann ich nicht gehen, da Sheet2 später von verschiedenen Dateien angesprochen werden soll. Hier ein wenig aufs wesentliche reduzierter Beispielcode:

Sub Sub1_Sheet1()
Workbooks.open Filename:="Sheet2"
Application.run "Sheet2!Sub1_Sheet2", Var1
End Sub

Sub Sub1_Sheet2(var1)
var2=irgendeinHokuspokus(var1)
End Sub
Bis hierhin funktioniert alles. Jetzt muss nur noch die Var2 zurück ins Sheet1. Hätte Irgendwer vielleicht einen Tipp für mich?
Vielen Dank im Voraus.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable aus anderer Datei holen
12.12.2022 09:34:39
peterk
Hallo

Sub Sub1_Sheet1()
Workbooks.open Filename:="Sheet2"
Application.run "Sheet2!Sub1_Sheet2", Var1, Var2
End Sub
Sub Sub1_Sheet2(var1, ByRef var2)
var2=irgendeinHokuspokus(var1)
End Sub
Peter
AW: Variable aus anderer Datei holen
12.12.2022 10:22:46
Tomek
Vielen Dank für die sehr schnelle Antwort. Leider funktioniert das bei mir nicht. In Sheet2 haben alle Variablen noch die richtigen Werte. Sobald das Makro wieder in Sheet1 zurück springt, haben die Übergabevariablen ihre Startwerte, sprich 0 oder leer. Hier die ungekürzten Übergabezeilen:

Application.Run "'FlacherzeugnisEN10028-2009_TEST.xlsm'!Start_aus_Berechnung", Ws, tAusl, K, K20, Typ

Sub Start_aus_Berechnung(Ws, tAusl, ByRef K, ByRef K20, ByRef Typ)

Anzeige
AW: Variable aus anderer Datei holen
12.12.2022 12:14:11
peterk
Hallo
Folgender Code funktioniert bei mir:

Sub test1()
Dim var1 As Long
Dim var2 As Long
Dim var3 As Long
Dim oapp As Object
Set oapp = Application
oapp.Run "Test2!Test2", 2, var1, var2, var3
Debug.Print var1, var2, var3
End Sub

Sub test2(inp, ByRef outp1 As Variant, ByRef outp2 As Variant, ByRef outp3 As Variant)
outp1 = inp * 5
outp2 = inp * 6
outp3 = inp * 7
End Sub
Peter
AW: Variable aus anderer Datei holen
12.12.2022 20:10:48
Daniel
Ok, das funktioniert
bei mir mit meinens Tests hats nicht funktioniert.
Kannst du mir erklären, was du spezielles macht, damit es funktioniert und und warum es das tut?
Gruß Daniel
Anzeige
AW: Variable aus anderer Datei holen
13.12.2022 09:07:32
peterk
Hallo Daniel
Ich kann Dir Deine Frage leider nicht beantworten.
Set oapp = Application
oapp.Run "Test2.xlsm!Test2", 2, var1, var2, var3
funktioniert, aber
Application.Run "Test2.xlsm!Test2", 2, var1, var2, var3
funktioniert nicht. Also liegt es an der Zuweisung Set oapp = Application.
Hab diesen Idee von folgender Seite übernommen:
https://bettersolutions.com/vba/macros/application-run.htm
Peter
Danke für die Info
13.12.2022 09:45:30
Daniel
Normalerweise geht man ja davon aus, dass so eine Variablenzuweisung keine weiteren Auswirkungen hat.
Aber gut zu wissen.
Danke nochmal.
Gruß Daniel
Anzeige
AW: Variable aus anderer Datei holen
13.12.2022 15:57:28
Tomek
Sorry, dass es mit der Rückmeldung etwas gedauert hat. Ich bin nicht auf Anhieb durch Dein Beispiel durchgestiegen und musste es dann natürlich noch auf meinen Anwendungsfall anpassen. Aber jetzt läuft es.
Ein ganz dickes Dankeschön dafür!
AW: Variable aus anderer Datei holen
12.12.2022 10:34:17
onur

Sub Sub1_Sheet1()
Workbooks.open Filename:="Sheet2"
Application.run "Sheet2!Sub1_Sheet2", Var1
End Sub
Sub Sub1_Sheet2(var1)
var1=irgendeinHokuspokus(var1) 'var1 wird verändert
End Sub

AW: Variable aus anderer Datei holen
12.12.2022 10:46:49
Tomek
Das geht in meinem Fall leider nicht, da Var1 und Var2 unterschiedlich sind. Anhand von Var1 (in meinem konkreten Fall sind es mehrere Variablen) werden mehrere Vorentscheidungen getroffen und anschließend ein paar andere Werte (Var2) aus umfangreicheren Tabellen interpoliert. Da möchte ich nicht die Eingabewerte überschreiben, sonst steigt da keiner mehr durch. Trotzdem Danke für die Anregung.
Anzeige
AW: Variable aus anderer Datei holen
12.12.2022 10:44:15
Daniel
Hi
Wenn, dann als Funktion mit Rückgabewert.
Eine Variablenübergabe byRef funktioniert zwischen zwei Mappen nicht.
Auf die Schnelle ohne zu testen würde ich vermuten so:

   Sub Sub1_Sheet1()
Workbooks.open Filename:="Sheet2"
X = Application.run ("Sheet2!Sub1_Sheet2", Var1)
End Sub
Function Sub1_Sheet2(var1)
Sub1_Sheet2=irgendeinHokuspokus(var1)
End Sub
Gruß Daniel
AW: Variable aus anderer Datei holen
12.12.2022 11:22:55
Tomek
Mit functions bin ich noch nicht so per Du. Ich muss mir diesen Lösungsansatz genauer anschauen, um ihn auf meine Bedürfnisse anzupassen. Wird etwas dauern, bis ich eine Rückmeldung geben kann. Danke schon mal.
Anzeige
AW: Variable aus anderer Datei holen
12.12.2022 13:17:54
Daniel
In VBA sind Subs und Function eigentlich das gleiche.
Functions haben zusätzlich einen Rückgabewert.
Für den Datenaustausch zwischen Dateien müsstest du diesen Rückgabewert verwenden, da das Application.Run die Werte immer nur byVal übergibt und nicht byRef
dh eine Änderung der Variablen in der aufrufenden Mappe ist nicht möglich.
Gruß Daniel
AW: Variable aus anderer Datei holen
12.12.2022 14:06:24
peterk
Hallo Daniel
siehe mein Beispiel
Peter

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige