Anzeige
Archiv - Navigation
1780to1784
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
Inhaltsverzeichnis

Variablenübergabe aus Modulen

Variablenübergabe aus Modulen
11.09.2020 12:20:00
Michael
Moin Zusammen,
ich brauche eure Hilfe, da ich irgendwie durch den Wind, oder einfach beschränkt bin.
Ich versuche Variablen aus Untermodulen in mein Makro zu holen, was nur zum Teil gelingt
Makro
Sub Abrechnungscode()
Dim Varibale1 as string
Dim Varibale2 as string
Call Modul1(Kriterium1)
Modul1
Public sub Daten1()
If Kriterum1= "B1" Then Variable1 = " ": Variable2 = " "
oder
If Kriterum1= "B1" Then Variable2 = " "
Im Einzelschritt kann ich sehen das beide Variablen gefüllt werden, aber nur Variable1 zurückgemeldet wird. Wie bekomme ich Variable 2 zurück?
Gruß
Michael

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variablenübergabe aus Modulen
11.09.2020 12:29:55
Herbert_Grom
Hallo Michael,
"Dim Varibale2 as string" musst du wahrscheinlich außerhalb des Codes im Standardmudul als "Public" schreiben.
Servus
AW: Variablenübergabe aus Modulen
11.09.2020 12:32:44
Herbert_Grom
so z. B.:
Option Explicit
Public Varibale2 As String
Sub ...
End Sub
Servus
AW: Variablenübergabe aus Modulen
11.09.2020 13:36:25
Michael
hm ... nee, hat nichts gebracht
AW: Variablenübergabe aus Modulen
11.09.2020 14:54:56
Michael
Hey Herbert, das hat funktioniert. Danke für Deine Unterstützung!
AW: Variablenübergabe aus Modulen
11.09.2020 16:32:45
Herbert_Grom
Bitte sehr, gerne geschehen. Danke für die Rückmeldung.
Servus
AW: Variablenübergabe aus Modulen
11.09.2020 12:37:34
Daniel
Hi
entweder gibt's du die zweite Variable ebenfalls als Übergabeparameter an (Call Modul1(Kriterium1, Kriterium2)
oder du deklarierst alle Variablen, die in beiden Subs verwendet und verändert werden sollen, als Projektweit gültig, dh die Deklaration erfolgt nicht innerhalb eines Makros, sondern in einem allgemeinen Modul oberhalb der Makros (unter Option Explicit, welches hierbei sehr empfehlenswert ist) mit dem Vorsatz PUBLIC.
ersteres wäre "nach Lehrbuch", zweites ist einfach praktikabler vorallem wenn man viele solcher Variablen hat.
Vorteil der zweiten Methode ist, dass dabei eine Variable in allen Subs auch immer den gleichen Namen hat, während bei der ersten Methode die selbe Variable in jeder Sub einen anderen Namen haben kann.
Gruß Daniel
Anzeige
AW: Variablenübergabe aus Modulen
11.09.2020 14:43:45
Michael
Hey Daniel,
das war nicht schlecht. Ich werde mir mal die bisherigen Antworten zusammenziehen und ausprobieren. Antwort kommt.
AW: Variablenübergabe aus Modulen
11.09.2020 14:57:14
Daniel
die anderen haben auch nichts anderes geschrieben als ich hier erwähnt habe.
Gruß Daniel
AW: Variablenübergabe aus Modulen
11.09.2020 14:51:37
Michael
Hey Daniel,
das klappt. Ich habe die betroffenen Variablen "explicit" im Modul ausgewiesen. Dank!
AW: Variablenübergabe aus Modulen
11.09.2020 12:44:11
Nepumuk
Hallo Michael,
würde ich so lösen:
Public Sub Abrechnungscode()
    
    Dim Variable1 As String
    Dim Variable2 As String
    Dim Kriterium1 As String
    
    Call Daten1(Kriterium1, Variable1, Variable2)
    
End Sub

Public Sub Daten1(Kriterium1 As String, Variable1 As String, Variable2 As String)
    If Kriterium1 = "B1" Then Variable1 = " ": Variable2 = " "
End Sub

Gruß
Nepumuk
Anzeige
AW: Variablenübergabe aus Modulen
11.09.2020 14:13:25
Michael
Hey Nepumuk, danke für den Fingerzeig!
Das Kuriose ist, das ich das Marko nicht mit Public Sub eröffnet habe noch die Variablen deklariert habe.
Ich Habe das Modul mit Public Sub eröffnet. Witziger weise kann ich alle Variablen aus dem Modul im Makro, ohne sie im Makro oder im Modul vorher deklariert zu haben, abrufen. Ich verstehe es zwar nicht, aber es klappt ...
AW: Variablenübergabe aus Modulen
11.09.2020 14:28:04
Nepumuk
Hallo Michael,
das liegt daran dass du Option Explicit nicht benutzt. Das würde dich zwingen alle Variablen zu deklarieren. Ohne werden die Variablen just in time beim Aufruf der Prozedur als Variant deklariert.
Also: Im VBA-Editor - Menüleiste - Extras - Optionen - Reiter" Editor" - Häkchen raus bei "Automatische Syntaxüberprüfung" und Häkchen rein bei "Variablendeklaration Erforderlich". Zusätzlich noch im Reiter "Allgemein" - "Unterbrechen bei Fehlern" - In Klassenmodul.
Gruß
Nepumuk
Anzeige
AW: Variablenübergabe aus Modulen
11.09.2020 14:41:16
Michael
Hallo Nepumuk,
ok, das ist nachvollziehbar und für meinen Rechner anwendbar. Kommt das Progi auf anderen Rechnern zur Anwedung, was es ja soll, können die Einstellungen nicht vorgenommen werden. Wenn ich nun die notwendigen Deklarationen vornehme ohne die Einstellungen klappt es denn auch auf anderen Rechnern?
AW: Variablenübergabe aus Modulen
11.09.2020 14:50:37
Nepumuk
Hallo Michael,
ja, mit Deklaration läuft es auf allen Rechnern, und du hast die Gewissheit das es auch die richtigen Werte ausgibt.
Gruß
Nepumuk
AW: Variablenübergabe aus Modulen
11.09.2020 14:53:17
Michael
Hey Nepumuk, das hat alles geklappt! Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige