Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Parameterübergabe beim Öffnen von Excel

Forumthread: Parameterübergabe beim Öffnen von Excel

Parameterübergabe beim Öffnen von Excel
21.07.2005 11:44:08
Excel
Hallo Zusammen,
ich habe eine Excel-Datei geschrieben, mit viel VBA-Code. Nennen wir die Datei mal "Datei_A"
jetzt möchte ich aus einer "Datei_B" heraus per VBA die "Datei_A" öffnen (ebenfalls eine Excel-Datei mit VBA-Code) und Ihr dabei gleich einen Wert (besser: mehrere Werte) mit übergeben.
Das Öffnen soll beim Click auf einen Command-Button in "Datei_B" gestartet werden.
GEHT DAS überhaupt ?
Wenn ja: WIE ?
Danke und Gruß,
LT
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Parameterübergabe beim Öffnen von Excel
21.07.2005 11:50:47
Excel
Das müsste meiner Meinung nach gehen:
Wenn Datei B immer nach A geöffnet wird, dann solltest Du die betreffenden Variablen als Public definieren können und der Hase liegt gerupft in der Pfanne...
Oder aber Du rufst Datei B über ein Call-Prozedur auf, bei der Du die Werte als Parameter übergebn kannst (damit habe ich aber keine Erfahrung)...
Gruss
Claus
Anzeige
Danke für die Theorie. und wer kennt die praxis ?
21.07.2005 11:55:35
LT
Hallo Claus,
du konntest mir nicht wirklich weiterhelfen.
das "WIE" ist das problem.
Wer kennt sich denn wirklich damit aus und kann mir die genaue Vorgehensweise beschreiben ?
Danke und Gruß,
LT
AW: Danke für die Theorie. und wer kennt die praxis ?
21.07.2005 12:04:46
Nepumuk
Hi,
das direkte benutzen von gemeinsamen Variablen in zwei Mappen geht nur, wenn du einen Verweis in der MappeA auf MappeB setzt. Das machtst du nach dem öffnen von MappeB. Beim schließen der MappeA löschst du diesen Verweis wieder. Du darfst die Option Explicit - Anweisung in MappeB nicht verwenden, da du sonst einen Kompilierungsfehler erzeugst. Außerdem musst du in einer der Mappen den Projektnamen ändern. Standardmäßig heißen die ja alle VBAProject.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
machen wir schritt für schritt... (datei öffnen)
21.07.2005 12:10:29
LT
Hi, Danke für den Tip, aber wie auch schon beim "Vorredner" etwas zuviel theorie, damit komm ich nicht klar.
Fangen wir lieber mal in kleinen Schritten an:
Mit welchem VBA-Befehl kann ich aus der Datei in der ich mich befinde eine andere Excel-Datei öffnen ?

Private Sub cmdDateiOeffnen_Click()
'Beim Klick dieses Buttons soll die Datei "test.xls" geöffnet werden.
'was muss ich hier reinschreiben ?
End Sub

Danke und Gruß,
LT
Anzeige
AW: machen wir schritt für schritt... (datei öffnen)
21.07.2005 12:27:13
Nepumuk
Hi,
so:
Private Sub CommandButton1_Click()
    Dim wbkBook As Workbook
    Set wbkBook = Workbooks.Open("D:\Eigene Dateien\Test\Test.xls") 'Pfad anpassen !!!
End Sub

Gruß
Nepumuk
Anzeige
AW: machen wir schritt für schritt... (datei öffnen)
21.07.2005 13:52:37
Claus
Hi Nepomuk,
warum arbeitest Du da mit einer Variable und nicht direkt mit Application.workbook open?
(Ist keine Frage wegen Glaubenskrieg oder so, sondern wirklich eine Frage warum...)
Gruss
Claus
AW: machen wir schritt für schritt... (datei öffnen)
21.07.2005 13:59:40
Nepumuk
Hi Claus,
die brauche ich später noch zum setzen des Verweises und kann das ganze, wenn mehrere Mappen geöffnet, sind besser kontrollieren. Wenn sich z.B. der Mappenname ändert, muss ich nur noch an einer Stelle ändern. Normalerweise mache ich das mit einer eigenen Klasse, aber ich glaube, damit überfordere ich LT.
Gruß
Nepumuk
Anzeige
ja, das würdest du :-)
21.07.2005 14:08:40
LT
...ich scheine ja gleich den "richtigen Eindruck" hinterlassen zu haben ;-)
ich werde am wochenende mal versuchen mit dem was du bisher geschrieben hast irgendwie zurecht zu kommen.
für weitere rückfragen poste ich dann wahrscheinlich neu.
einstweilen vielen dank.
viele DAU-grüße,
LT
Anzeige
AW: Danke für die Theorie. und wer kennt die praxis ?
21.07.2005 12:17:05
Claus
Grins... OK... sorry wenn es arg theoretisch war, was ich geschrieben habe. Ich habe aus der Erwähnung von viel VBA-Code geschlossen, dass Du verstehst was ich da schreibe...
Du deklarierst doch in Deiner Datei die Variablen irgendwo, oder?
Wahrscheinlich mit "DIM blabla as variant" oder so...
Diese Zeile nimmst Du raus und stellst sie vor das erste/oberste Makro in diesem Deinem Sheet und schreibst statt DIM ein PUBLIC rein, also "PUBLIC blabla as string"
Damit ist die betreffende Variable blabla im ganzen Projekt verfügbar. Und wenn Du Datei B aus Datei A heraus mit einem Makro aus A herausöffnest, dann gehört Datei B mit zum gleichen Projekt und blabla behält seinen Wert.
Die Makros die dann in Datei B rumwurschteln sollten aber auch von A aus laufen... Und in B sollten auto_Makros nicht blabla neu definieren...
Gruss
Claus
Anzeige
AW: Parameterübergabe beim Öffnen von Excel
21.07.2005 12:26:54
Excel
Hi,
hier ein etwas anderer Ansatz ...
In Datei_A eine (Pulic)Funktion in einem normalen Modul, die diverse Werte liefert.


Option Explicit
Public Function GetValue(Val As IntegerAs Variant
    Select Case Val
    Case 0: GetValue = "Hallo"
    Case 1: GetValue = "Welt"
    Case 2: GetValue = 55&
    End Select
End Function


In Datei_B werden die Werte dann im Open-Event abgerufen ...


Option Explicit
Private Sub Workbook_Open()
    MsgBox Application.Run("Datei_A.xls!GetValue", 0)
    MsgBox Application.Run("Datei_A.xls!GetValue", 1)
    MsgBox Application.Run("Datei_A.xls!GetValue", 2)
End Sub


Gruß
Thomas
Risi Thomas Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer
Anzeige
AW: Parameterübergabe beim Öffnen von Excel
21.07.2005 12:42:33
Excel
Servus Thomas,
hast du das mal getestet? Ich habe nämlich schon die Erfahrung machen müssen, dass nach dem zweiten Aufruf eines Makros, über Application.Run mit Parameterübergabe, in einer anderen Mappe, plötzlich alle öffentlichen Variablen in der aufrufenden Mappe zurückgesetzt waren. Ein anderer hat das auch schon erlebt, und das ganze ist reproduzierbar.
Gruß
Nepumuk
Anzeige
AW: Parameterübergabe beim Öffnen von Excel
21.07.2005 12:51:12
Excel
&gthast du das mal getestet?
Nun, bei mir läuft's ...
Gruß
Thomas
Risi Thomas Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer
Anzeige
AW: Parameterübergabe beim Öffnen von Excel
21.07.2005 13:09:28
Excel
Hi Thomas,
der Fehler tritt nur unter bestimmten Voraussetzungen auf. Eine ist, wenn der Aufruf aus dem Klassenmodul eines Diagramms heraus erfolgt.
Gruß
Nepumuk
;
Anzeige

Infobox / Tutorial

Parameterübergabe beim Öffnen von Excel


Schritt-für-Schritt-Anleitung

Um eine andere Excel-Datei über VBA zu öffnen und dabei Werte zu übergeben, kannst du die folgenden Schritte befolgen:

  1. Öffne die Excel-Datei, in der du den Command-Button platzieren möchtest (z.B. "Datei_B").

  2. Füge einen Command-Button in dein Excel-Arbeitsblatt ein.

  3. Klicke mit der rechten Maustaste auf den Button und wähle "Code anzeigen".

  4. Füge den folgenden VBA-Code ein:

    Private Sub CommandButton1_Click()
       Dim wbkBook As Workbook
       Set wbkBook = Workbooks.Open("D:\Eigene Dateien\Test\Test.xls") 'Pfad anpassen
       ' Hier können weitere Parameter an die geöffnete Datei übergeben werden
    End Sub
  5. Um Werte zu übergeben, könntest du entweder öffentliche Variablen verwenden oder direkt auf Funktionen in der anderen Datei zugreifen.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen der Datei:

    • Ursache: Der angegebene Pfad zur Datei ist falsch.
    • Lösung: Überprüfe den Dateipfad und stelle sicher, dass die Datei an diesem Ort existiert.
  • Kompilierungsfehler bei der Verwendung von Variablen:

    • Ursache: Die Option Option Explicit ist aktiviert.
    • Lösung: Stelle sicher, dass alle Variablen deklariert sind oder verwende sie in einer anderen Mappe ohne diese Option.
  • Öffentliche Variablen werden zurückgesetzt:

    • Ursache: Der Aufruf erfolgt aus einem Klassenmodul heraus.
    • Lösung: Vermeide den Aufruf von Application.Run aus Klassenmodulen, wenn du öffentliche Variablen in der aufrufenden Mappe behalten möchtest.

Alternative Methoden

Eine Alternative zur Verwendung eines Command-Buttons ist die Verwendung des Workbook_Open-Ereignisses. Du kannst die Werte übergeben, sobald die Datei geöffnet wird:

Private Sub Workbook_Open()
    MsgBox Application.Run("Datei_A.xls!GetValue", 0)
End Sub

In diesem Beispiel wird eine Funktion GetValue in "Datei_A" aufgerufen, die basierend auf dem übergebenen Wert eine Rückgabe liefert.


Praktische Beispiele

Hier sind einige Beispiele zur Parameterübergabe:

  1. Öffnen einer Datei mit Rückgabe von Werten:

    In "Datei_A":

    Public Function GetValue(ByVal Val As Integer) As Variant
       Select Case Val
           Case 0: GetValue = "Hallo"
           Case 1: GetValue = "Welt"
           Case 2: GetValue = 55
       End Select
    End Function

    In "Datei_B":

    Private Sub Workbook_Open()
       MsgBox Application.Run("Datei_A.xls!GetValue", 0)
    End Sub
  2. Verwendung öffentlicher Variablen:

    In "Datei_A":

    Public myValue As String

    In "Datei_B":

    myValue = "Ein Wert"

Tipps für Profis

  • Nutze Public-Variablen, um Daten zwischen verschiedenen VBA-Modulen zu teilen.
  • Stelle sicher, dass die Referenzen zwischen den Mappen korrekt gesetzt sind, um Fehler beim Zugriff auf Variablen zu vermeiden.
  • Vermeide die Verwendung von Application.Run in Klassenmodulen, um unerwartete Komplikationen zu verhindern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Werte gleichzeitig übergeben?
Du kannst mehrere Parameter in einer Funktion definieren und sie dann in Application.Run übergeben, z.B. Application.Run("Datei_A.xls!GetValue", Wert1, Wert2).

2. Gibt es ein anderes Wort für Parameter?
Ja, ein anderes Wort für Parameter sind "Argumente", die in VBA übergeben werden.

3. Was ist die beste Methode zur Parameterübergabe?
Die beste Methode hängt von deinem spezifischen Anwendungsfall ab. Für einfache Werte sind öffentliche Variablen nützlich, während für komplexe Datenstrukturen Arrays oder benutzerdefinierte Objekte sinnvoll sein können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige