Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable übergeben an zwei Datei

Variable übergeben an zwei Datei
26.06.2008 14:19:33
Mathias
Hallo,
erstmal wirklich tolles Forum. Hier findet man viel Hilfe!
Jetzt aber zu meiner Frage, da leider die Zeit etwas trängt:
Ich habe zwei Excel Dateien. Die 1. öffnet die 2. mittels vba und dem Befehl workbook.open. Dandach aktiviere ich die 2. Datei um dort verschiedene Einstellungen vorzunehmen, beispielsweise Zoomfaktor usw, damit beide Dateien einen gleiches Layout besitzten. Das klappt alles wunderbar. Mein Problem ist nun folgender:
Die 2. Datei enthält eine Abfrage, die besagt: Wenn nach dem Öffnen der Datei die Variable "Sicherheit" eine "True" hat, wird die Sicherheit aktiviert, bei "False" nicht. Öffnet man die Datei normal ist immer "True" aktiviert. Wenn aber diese Datei über eine andere Datei geöffent wird (siehe oben), dann soll die Sicherheit "False" sein. Ich muss also nach dem Öffnen der 2. Datei einen Variable mit "False" von der 1. an die 2. Datei übergeben. Leider geht das so aber nicht, obwohl die Variable dateiweit declariert bzw. dimensoniert ist. Ich hoffe ihr konntet mir folgen. Hier ein kleines Beispiel, das in der 1. Datei steht:
----------
Workbooks.Open Filename:=QuellDatei, ReadOnly:=True, UpdateLinks:=0 '2. Datei wird geöffnet
...
Windows(DateinameKurz).Activate '2. Datei wird aktiviert
Sheets(1).Select '1. Blatt aktivieren
Sicherheit = False 'Variable in der 2. Datei setzen
----------
Obwohl ich die Variable "Sicherheit" wie zu sehen mit "False" setze, enthält sie immer noch den Wert "True", der standartmäßig gesetzt ist. Es scheint, als ob man keine Variable einer fremden Datei setzen kann.
Ich hoffe, ihr wisst mir zu helfen!
Vielen Dank fürs Lesen und für eventuelle Hilfe
Mathias K.

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Variable übergeben an zwei Datei
26.06.2008 14:26:00
Rudi
Hallo,
es geht nicht.
Schreibe die Var in ein Tabellenblatt und lies sie wieder aus.
Gruß
Rudi

AW: Variable übergeben an zwei Datei
26.06.2008 14:30:13
Mathias
Ist für mich wieder so eine Sache, die einfach keinen Sinn macht inExcel, aber vielen Dank für die Info.
Gibt es vielleicht ne Möglichkeit, eine Exceldatei mit Parameter aufzurufen und diesen Parameter abzufragen?

Anzeige
eins geht ...
26.06.2008 14:47:26
Rudi
Hallo,
du kannst deine Variable als Parameter an eine Prozedur in der anderen Datei übergeben.
In Mappe1

Sub tt()
Application.Run "mappe2!getVar", "Test"
End Sub


In Mappe2


Public pubString As String
Sub GetVar(var)
pubString = var
MsgBox pubString
End Sub


Vielleicht hilft's ja weiter.
Gruß
Rudi

Anzeige
AW: eins geht ...
26.06.2008 15:05:33
Mathias
Genau die gleiche Idee hatte ich beim Rauchen eben auch!! Ist zwar auch eher ein Umweg, aber besser als die Zellenschreiberei. Super für die Bestätigung und die tolle und einfache Darstellung, danke Rudi!

AW: eins geht ...
26.06.2008 15:13:00
Rudi

hatte ich beim Rauchen 


soll mal noch einer sagen, Rauchen ist ungesund ;-)

Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Variable an zwei Excel-Dateien übergeben


Schritt-für-Schritt-Anleitung

Um eine Variable von einer Excel-Datei an eine andere zu übergeben, kannst Du die folgende Vorgehensweise nutzen:

  1. Öffne die erste Excel-Datei und aktiviere das VBA-Editor-Fenster (ALT + F11).

  2. Füge den folgenden Code in ein Modul der ersten Datei ein, um die zweite Datei zu öffnen und die Variable zu übergeben:

    Sub tt()
       Dim Sicherheit As Boolean
       Sicherheit = False  ' Setze die Variable
       Application.Run "mappe2!getVar", Sicherheit
    End Sub
  3. In der zweiten Datei (mappe2) füge einen Public-Sub ein, der die übergebene Variable aufnimmt:

    Public pubString As Boolean
    Sub GetVar(var As Boolean)
       pubString = var
       MsgBox "Sicherheit ist jetzt: " & pubString
    End Sub
  4. Führe die Prozedur tt aus in der ersten Datei, um die zweite Datei mit der übergebenen Variable zu öffnen.


Häufige Fehler und Lösungen

  • Fehler: Variable bleibt unverändert
    Wenn die Variable in der zweiten Datei nicht aktualisiert wird, stelle sicher, dass Du die richtige Syntax verwendest und die Prozedur in der zweiten Datei korrekt aufgerufen wird.

  • Fehler: Datei öffnet nicht
    Überprüfe den Dateinamen und den Pfad, den Du in Workbooks.Open angibst. Achte darauf, dass er korrekt und die Datei vorhanden ist.


Alternative Methoden

Eine einfache Methode, die Variable zu übergeben, besteht darin, sie in ein Tabellenblatt zu schreiben und später auszulesen. Hier ist ein Beispiel:

  1. In der ersten Datei:

    Sheets("Sheet1").Range("A1").Value = Sicherheit
    Workbooks.Open Filename:=QuellDatei
  2. In der zweiten Datei:

    Sicherheit = Sheets("Sheet1").Range("A1").Value

Diese Methode kann nützlich sein, wenn Du mehrere Variablen übergeben möchtest.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie Du eine Excel-Datei mit Variablen öffnest:

Sub OpenFileWithVariable()
    Dim Sicherheit As Boolean
    Sicherheit = False
    Workbooks.Open Filename:="C:\Pfad\zu\deiner\Datei.xlsx"
    Application.Run "mappe2!GetVar", Sicherheit
End Sub

Dieses Beispiel öffnet die Datei und übergibt die Variable Sicherheit.


Tipps für Profis

  • Nutze Public-Variablen in der zweiten Datei, um Werte über verschiedene Prozeduren hinweg zu speichern.
  • Dokumentiere Deinen Code gut, um die Nachvollziehbarkeit und spätere Bearbeitung zu erleichtern.
  • Probiere, Deine VBA-Prozeduren modular zu gestalten, um Wiederverwendbarkeit zu gewährleisten.

FAQ: Häufige Fragen

1. Kann ich mehrere Variablen gleichzeitig übergeben?
Ja, Du kannst mehrere Variablen übergeben, indem Du sie in einem Array speicherst oder sie einzeln nennst, wenn Du Application.Run verwendest.

2. Was ist der beste Weg, um die Sicherheit zu steuern?
Die Verwendung von Public-Variablen ist eine effektive Methode, um sicherzustellen, dass Variablen über verschiedene Module hinweg zugänglich sind.

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