Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable zu anderem Makro übergeben?

Forumthread: Variable zu anderem Makro übergeben?

Variable zu anderem Makro übergeben?
23.08.2002 14:41:53
Andy

Hallo!

Ich möchte, dass der Inhalt einer Variable aus dem Workbook_Open Bereich (Diese Arbeitsmappe) auch aus einem Makro in einem Modul verwendet werden kann.
Konkret überprüfe ich beim öffnen der Mappe, ob eine Textdatei vorhanden ist. Der Name steht in der Variable dName. Falls ja wird am Ende dann ein Makro in einem Modul per call aufgerufen, dass diese Datei öffnen und weiterverarbeiten soll. Dieser Dateiname steht schon bereits mit Pfad in der Variable dName.
Das Makro merkt sich aber den Inhalt dieser Variable nicht, er ist für ihn leer. Ich möchte die Variable aber nicht im Makro neu deklarieren und setzen!

Gibt es jetzt eine Variable, die ich auch in allen Makros verwenden kann?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Variable zu anderem Makro übergeben?
23.08.2002 14:46:30
Anton
Hallo,

definiere z. B. die Variable auf Modulebene als public.

Anton

Re: Variable zu anderem Makro übergeben?
23.08.2002 14:46:44
Stephan
Hi Andy,

wenn ich Dich richtig verstanden habe, müsste es reichen, wenn du dName als Parameter übergibst:

Die Methode müsste dann in etwa so aussehen:
Sub MeineMethode(strName As String)
' Befehle
End Sub

Aufgerufen wird das Ganze dann mit
Call MeineMethode(dName)

Ich hoffe, ich konnte Dir bissl weiterhelfen :)

Gruß,
Stephan

Anzeige
Re: Variable zu anderem Makro übergeben?
23.08.2002 14:55:40
Hat sich erledigt !

Hi !

Danke für die Hilfe, aber ich habe den Fehler gerade selbst entdeckt:
Ich habe das "Public dName" im Bereich "DieseArbeitsmappe" geschrieben statt in einem Modul vor dem Makro!
Das muss wohl da stehen, sonst funktioniert es nicht!

Sorry!

Re: Variable zu anderem Makro übergeben?
23.08.2002 14:56:37
Axel
Hallo,

wenn Du Deine Prozedur (Makro) direkt aus Workbook_Open aufrufst, kannst Du die Variable doch einfach übergeben, z.b

Gruß
Axel

Anzeige
Re: Variable zu anderem Makro übergeben?
23.08.2002 15:46:24
Andy

Danke! Hat sich schon erledigt.

Ich hab´s mit Public gemacht. ;)

;
Anzeige

Infobox / Tutorial

Variablen in Excel VBA zwischen Makros übergeben


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem du Alt + F11 drückst.
  2. Definiere die Variable in einem Modul als Public. Dies ermöglicht es, die Variable in verschiedenen Makros zu verwenden. Beispiel:
    Public dName As String
  3. Setze den Wert der Variable im Workbook_Open-Ereignis:
    Private Sub Workbook_Open()
        dName = "C:\Pfad\zur\Datei.txt"
    End Sub
  4. Rufe das Makro auf, in dem du die Variable benötigst, und übergib die Variable als Parameter:
    Call MeineMethode(dName)
  5. Definiere das Makro, das die übergebene Variable nutzt:
    Sub MeineMethode(strName As String)
        ' Hier kannst du mit strName arbeiten
    End Sub

Häufige Fehler und Lösungen

  • Variable nicht erkannt: Wenn du die Variable im Bereich „Diese Arbeitsmappe“ und nicht in einem Modul definiert hast, wird sie möglicherweise nicht erkannt. Stelle sicher, dass die Public-Deklaration in einem Modul steht.

  • Falsche Parameterübergabe: Achte darauf, dass die Parameter in der Methode korrekt definiert sind. Der Typ der Variable muss mit dem Typ der übergebenen Variable übereinstimmen.


Alternative Methoden

  • Globale Variablen: Du kannst auch globale Variablen verwenden, um Werte über mehrere Module hinweg zu speichern. Deklariere die Variable einfach am Anfang eines Moduls mit Public.

  • Excel VBA Parameter übergeben: Anstatt globale Variablen zu verwenden, kannst du auch Parameter direkt an ein Sub übergeben. Dies macht deinen Code sauberer und weniger fehleranfällig, da die Variablen nur dort existieren, wo sie gebraucht werden.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Übergabe einer Variable in Excel VBA umsetzen kannst:

Public dName As String

Private Sub Workbook_Open()
    dName = "C:\Pfad\zur\Datei.txt"
    Call MeineMethode(dName)
End Sub

Sub MeineMethode(strName As String)
    ' Hier öffnest du die Datei oder führst andere Operationen durch
    MsgBox "Die Datei, die geöffnet werden soll, ist: " & strName
End Sub

In diesem Beispiel wird der Dateipfad in der Variable dName gespeichert und an das Sub MeineMethode übergeben.


Tipps für Profis

  • Verwende Konstanten: Anstatt Variablen zu verwenden, kannst du Konstanten definieren, wenn sich bestimmte Werte nicht ändern. Dies kann die Lesbarkeit und Wartbarkeit des Codes erhöhen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung in deinen Makros, um sicherzustellen, dass dein Code auch bei unerwarteten Eingaben robust bleibt. Nutze dazu On Error GoTo-Anweisungen.


FAQ: Häufige Fragen

1. Wie kann ich eine Variable in mehreren Modulen verwenden? Du kannst die Variable als Public in einem Modul deklarieren. Dann ist sie in allen Modulen verfügbar.

2. Was passiert, wenn ich einen falschen Datentyp als Parameter übergebe? Wenn der Datentyp des übergebenen Parameters nicht mit dem deklarierten Typ im Sub übereinstimmt, erhältst du einen Laufzeitfehler. Stelle sicher, dass die Typen übereinstimmen.

3. Kann ich auch mehrere Variablen gleichzeitig übergeben? Ja, du kannst mehrere Parameter in deinem Sub definieren, z.B. Sub MeineMethode(strName As String, intWert As Integer) und diese entsprechend übergeben.

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