Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Variable aus anderem Workbook übernehmen

Betrifft: Variable aus anderem Workbook übernehmen von: Peter
Geschrieben am: 30.10.2012 11:57:18

Guten Tag

Aus meinem Workbook "AAAA.xlsm" rufe ich einen Code in Workbook "BBBB.xls" auf mit Application.Run rPEBE.Value & "!Arbeitsschritte_ausfuehren"
In Workbook "BBBB.xls" wird nun unter anderem eine Dateibezeichnung ermittelt und der Variable strNameDatei zugewiesen.
Meine Frage: Wie kann ich den Inhalt dieser Variable in Workbook "AAAA.xls" übernehmen und weiterverwenden? Am Schluss der Ausführung von "Arbeitsschritte_ausführen" wird die Datei "BBBB.xls" gespeichert und geschlossen.

Gruss, Peter

  

Betrifft: SaveSetting GetSetting von: Erich G.
Geschrieben am: 30.10.2012 12:58:23

Hi Peter,
der Wert muss ja den Ablauf der Prozedur, also auch das Schließen der BBBB.xls, überdauern.
Dann gibt es diese Variable aber nicht mehr im Speicher.

Eine Möglichkeit:
Die Prozedur in BBBB schreibt den Wert z. B. mit SaveSetting,
die aufrufende Prozedur in AAAA liest mit GetSetting, löscht dann evtl. auch mit DeleteSetting.

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Variable aus anderem Workbook übernehmen von: Tino
Geschrieben am: 30.10.2012 13:15:19

Hallo,
hier mal eine Variante

Ich rufe mit Application.Run das Makro in der Mappe2 auf,
dieses wiederum ruft auch mit Application.Run ein Makro in der Mappe1 auf
und übergibt dabei die Variable an Mappe1, dort wird der Inhalt in eine
Public oder wie im Beispiel an eine Variable übergeben.

kommt als Code in Modul

Option Explicit 
Dim varValue 
 
Sub MakroAusMappe1() 
Dim MeVar 
Application.Run "Mappe2.xls!MakroMappe2" 
MsgBox varValue 
varValue = Empty 
End Sub 
 
Sub GlobalVar(varExValue) 
varValue = varExValue 
End Sub 
kommt als Code in Modul
Option Explicit 
 
Sub MakroMappe2() 
Dim MeVariable 
MeVariable = "Test" 
Application.Run "Mappe1.xls!GlobalVar", MeVariable 
End Sub 
Gruß Tino


  

Betrifft: AW: Variable aus anderem Workbook übernehmen von: Peter
Geschrieben am: 30.10.2012 13:49:35

Hallo Tino
Ich will das mal versuchen.

Nun habe ich folgendes probliert:

Den in BBBB.xls aufzurufenden Code habe ich mit einem optionalen Argument ersetzt.

Sub Einzelexporte_holen(Optional strDateiname As String) 
...
End Sub

Hier soll der Name der aufzurufenden Datei übergeben werden (optional deshalb, weil der Code ab und zu direkt in BBBB.xls gestartet wird und daher nichts in Datei AAAA.xls zu geschehen hat.

In Datei AAAA.xlsm wollte ich den Code nun wie folgt aufrufen:
Application.Run rPEBE.Value & "!Arbeitsschritte_ausfuehren(" & ThisWorkbook.Name & ")"
Doch scheint etwas mit der Syntax nicht gut zu sein. Auf jeden Fall wird jetzt das Makro (in der Datei BBBB.xls, die offen ist) nicht gefunden. rPEBE.Value im Direktbereich ausgewertet ergibt "BBBB.xls"

Was mache ich falsch?

Gruss, Peter





  

Betrifft: AW: Variable aus anderem Workbook übernehmen von: Peter
Geschrieben am: 30.10.2012 15:32:14

Hallo
Dieses Problem konnte ich auch noch lösen:
nicht so:
Application.Run rPEBE.Value & "!Arbeitsschritte_ausfuehren(" & ThisWorkbook.Name & ")"

sondern so:
Application.Run rPEBE.Value & "!Arbeitsschritte_ausfuehren", ThisWorkbook.Name
(allfällige weitere Argumente würden nach einem weiteren Komma angehängt).

Gruss, Peter


  

Betrifft: AW: Variable aus anderem Workbook übernehmen von: Nepumuk
Geschrieben am: 30.10.2012 13:41:37

Hallo,

mach doch aus der Sub einfach eine Function:

strNameDatei = Application.Run(rPEBE.Value & "!Arbeitsschritte_ausfuehren")

Am Ende der Prozedur Arbeitsschritte_ausfuehren:

Public Function Arbeitsschritte_ausfuehren()
    
    'dein Code
    
    Arbeitsschritte_ausfuehren = strNameDatei
End Function

Gruß
Nepumuk


  

Betrifft: AW: Variable aus anderem Workbook übernehmen von: Peter
Geschrieben am: 30.10.2012 14:34:27

Hallo Nepumuk
Danke für diesen interessanten Hinweis. Das hat so geklappt.

Gruss, Peter


 

Beiträge aus den Excel-Beispielen zum Thema "Variable aus anderem Workbook übernehmen"