Clever-Excel-Forum

Normale Version: Excel mit Parameteraufruf
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Anliegen bzw. Problem. Hier mein Versuch, es möglichst genau zu beschreiben.

In meiner Anwendung "Excel-1.xls" möchte ich die Anwendung "Excel-2.xls" aufrufen und an diese Anwendung 3 Parameter mit übergeben (die ich bei Beendigung dieser Anwendung wieder an das aufrufende Programm zurückgeben will.

"Para-1" = alphanumerisch
"Para-2" = numerisch (Wert 0)
"Para-3" = numerisch (Wert 0)

In der Anwendung "Excel-2.xls" wird dann über den Wert in Parameter "Para-1" die weitere Verarbeitung gesteuert.
Außerdem werden in Parameter "Para-2" und "Para-3" die Werte verändert.

Bei Beendigung der Anwendung "Excel-2.xls" möchte ich nun diese neuen Werte der Parameter "Para-2" und "Para-3" an das aufrufende Programm "Excel-1.xls" wieder zurückgeben, um es dann in dieser Anwendung verarbeiten zu können.

Mein Aufruf in "Excel-1" lautet:

ChDir "C:\Test"
Workbooks.Open Filename:="C:\Test\Excel-2.xls" ' hier müsste ich meine Parameter übergeben ???


"Excel-2" wird folgendermaßen beendet:
...
...
...
ActiveWorkbook.Save
Application.ThisWorkbook.Close       ' hier müsste ich meine Parameter an das aufrufende Programm zurückgeben

Jetzt weiß ich nicht, ob so etwas überhaupt geht oder wenn ja, wie die Übergabe der Parameter aussehen muss.

Wer kann mir dazu Tipps geben?
Hallo Günther!
Zitat:Hier mein Versuch, es möglichst genau zu beschreiben.
So richtig gelungen ist Dir dies (noch) nicht.
Wichtig wäre, was die Parameter bewirken sollen.
Normalerweise geht man so vor:
- Öffnen der Datei
- in der geöffneten Datei Deine Params arbeiten lassen
- Rückgabewerte ermitteln
- Datei 2 schließen (evtl. speichern)

Gruß Ralf
Hallo Günther,

warum so kompliziert? Du kannst doch die Mappe2 direkt aus der aufrufenden Mappe1 heraus steuern, wenn diese eh über Mappe1 per VBA geöffnet wird.

Code:
Sub aaa()
 Dim wbMappe2 As Workbook
 Set wbMappe2 = Workbooks.Open(Filename:="C:\Test\Excel-2.xls")
 
 'als Beispiel
 MsgBox wbMappe2.Sheets(1).Name
End Sub

Gruß Uwe
Hallo Ralf,

die 3 Parameter haben folgende Funktion:

- der Parameter "Parm-1" enthält z.B. den Wert "Meier" oder "Müller" oder ... - mit diesem Wert steuere ich in "Excel-2" die Berechnungen.
- die Parameter "Parm-1" und "Parm-2" enthalten beim Aufruf von "Excel-2" den Wert "0" und werden in "Excel-2" mit errechneten Werten gefüllt.

Diese beiden Werte in "Parm-1" und "Parm-2" (z.B. "Parm-1" = 100; "Parm-2" = 350) möchte ich dann beim Beenden von Anwendung "Excel-2" (mit Save + Close) an das aufrufende Programm "Excel-1" zurückgeben (ist noch geöffnet) und dann diese Werte in "Excel-1" weiterverarbeiten.

Es würde mir aber auch genügen, wenn ich beim Aufruf von "Excel-2" nur den Parameter "Parm-1" ("Meier", "Müller" oder ...) an "Excel-2" übergebe und bei Beendigung von "Excel-2" und Rückkehr in das rufende Programm "Excel-1" die Parameter "Parm-2" (Wert = 100) und "Parm-3" (Wert = 350) zurückgebe.

Ich habe nur gedacht, dass es bei Aufruf und Rückgabe immer gleich viel Parameter sein müssen.
                         
Ich hoffe, dass ich es jetzt klarer formuliert habe.
Hallo Ralf,
hallo Uwe,

danke für den Hinweis - irgendwie stand ich im Walde. 

Natürlich kann ich Anwendung Excel-2 über Anwendung Excel-1 steuern bzw. quer über beide Anwendungen arbeiten.

Wenn ich in Excel-2 fertig bin, sichere und schließe ich die Mappe und kann anschließend in Excel-1 weiter arbeiten.

Da habe ich mir wohl das Problem (das es überhaupt nicht gibt) selbst erschaffen.

Nochmals vielen Dank für die Hinweise, jetzt läuft alles bei mir.

Servus und einen schönen Sonntag.