Anzeige
Archiv - Navigation
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
400to404
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

eingelesene Daten Modul-uebergreifend nutzen

eingelesene Daten Modul-uebergreifend nutzen
Benjamin
Hallo zusammen,
ich habe ein VBA-Projekt mit mehreren Modulen. Ein Modul dient dazu, Daten aus einer anderen Datei einzulesen.
Ich wuerde jetzt gerne in den anderen Modulen dieses eine Makro aufrufen und die eingelesenen Daten in den anderen Modulen nutzen.
Mit Call (macro_name) wird das Makro zwar ausgefuehrt, aber die Daten kommen in den anderen Modulen nicht an (d.h., an der Stelle, wo die Daten in die Excel-Datei geschrieben werden sollen, ist nur eine leere Zelle zu finden).
Danke schon mal vorab.
VG, Benjamin

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: eingelesene Daten Modul-uebergreifend nutzen
Oberschlumpf
Hallo Benjamin
Ich vermute, Du übergibst die eingelesenen Daten mit dem einen Modul erst an Variablen, um sie vor Weitergabe an ein anderes Modul zu verarbeiten.
Und diese Variablen sind, wenn überhaupt, nur innerhalb dieses einen Moduls (Function/Procedure) deklariert und/oder dimensioniert.
Du musst die Variablen, die die Werte an ein anderes Modul übergeben sollen, öffentlich deklarieren und/oder dimensionieren.
Dies erreichst Du außerhalb aller Module mit dem Schlüsselwort PUBLIC.
Ein Bsp zur Verdeutlichung:


'so ist es falsch
Sub DatenAusZelleLesen()
    Dim StrVar As String
    StrVar = Sheets(1).Range("A1").Value 'in A1 steht "Müller"
    MsgBox StrVar 'Rückgabewert = "Müller"
    Call DatenAusgeben()
End Sub
Sub DatenAusgeben()
    MsgBox StrVar 'Rückgabewert = "", da Str nur in der oberen Sub Gültigkeit hat
End Sub
'so ist es richtig
Public StrVar As String
Sub DatenAusZelleLesen()
    StrVar = Sheets(1).Range("A1").Value 'in A1 steht "Müller"
    MsgBox StrVar 'Rückgabewert = "Müller"
    Call DatenAusgeben()
End Sub
Sub DatenAusgeben()
    MsgBox StrVar 'Rückgabewert = "Müller", da Str nun in jeder Sub Gültigkeit besitzt
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: eingelesene Daten Modul-uebergreifend nutzen
Benjamin
Hallo Thorsten,
ja, das hat mir sehr weitergeholfen.
Vielen Dank und viele Gruesse
Benjamin
Gruß zurück + thx for feedback :-) o.T.
Oberschlumpf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige