Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
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 an Submakro übergeben

Variablen an Submakro übergeben
06.04.2009 16:22:50
Claus
Guten Tag liebe Excelianer!
Man kann doch einen Makro als Unterprogramm eines anderen Makros nutzen. Z.B.: Application.Run "DateiX.xls!Submakro"
oder auch mit Call.... (was ist da eigentlich der Unterschied?)
Nun mein Problemchen: Der Submakro soll mit Varianlen (Dim vx as Variant) arbeiten, die aus den übergeordneten Makros stammen. Die werden mir aber jetzt beim Aufruf des Submakros geleert. Gibt es eine Möglichkeit, die Variablen zu übernehmen?
Vielen Dank schon mal und liebe Grüße
Claus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variablen an Submakro übergeben
06.04.2009 16:26:01
Hajo_Zi
Hallo Claus,
Application.Run mit Variablen
Application.Run "PERSONAL.XlSB!MarkBerIdenfiz", 1, 2, 3, 4

AW: Variablen an Submakro übergeben
06.04.2009 16:27:30
Ptonka
Hallo Claus,
Du schreibst oberhalb aller Makros folgende Deklarierung der Variablen:
Public Textvariable1 as String
oder
Public Zahlenvariable as Integer
Dann werden alle Varialen auch gefüllt übernommen.
Gruß,
Ptonka
AW: Variablen an Submakro übergeben
06.04.2009 16:33:50
D.Saster
Hallo,

was ist da eigentlich der Unterschied?


mit Application.Run kannst du Makros aus anderen Dateien aufrufen. Mit Call nur aus der gleichen.
Du kannst die Variablen entweder global definieren, dann bleiben sie erhalten, oder du übergibst sie als Parameter an das andere Makro


sub Makro1()
dim strTest as string
strTest="Test"
Call Makro2 (strTest)
End sub
Sub Makro2(strMldg as string)
Msgbox strMldg
End Sub

Gruß
Dierk

Anzeige
AW: Variablen an Submakro übergeben
06.04.2009 16:58:56
Claus
allo Hajo, Ptonka und Dierk (deine Antwort kann man ja nur als disaströs bezeichnen, eieiei - quatsch, war ein Späßle bzgl deines nicks)
vielen Dank, das waren jetzt genau die Infos die ich wollte. Dann wede ich meine Variablen global definieren.
Allerdings benötige ich Kommazahlen, heißt es dann anstatt "Public Zahlenvariable as Integer" : "Public Zahlenvariable as Variant" ?
Dann wäre ich ja flexibel und kann diese Variablen zwischen vielen verschiedenen Makros austauschen - genau das brauche ich.
Danke auch für die Erklärung des Unterschiedes zw. run und call. Das ist in meinem Beispiel nicht relevant, dann nehme ich weiterhin run und wähle meine Makronamen so ausführlich, daß diese nicht zufällig mehrfach vorkommen.
Also herzlichen Dank für 3 superschnelle Lösungen.
Grüßle Claus
Anzeige
AW: Variablen an Submakro übergeben
06.04.2009 17:01:53
Hajo_Zi
Hallo Claus,
ich vermute mal, wenn Du die Variable in der einen Datei als Public definiertst, sind Sie in der anderen nicht da. Aber teste es.
Gruß Hajo
AW: Variablen an Submakro übergeben
06.04.2009 19:13:16
Nepumuk
Hallo Claus,
lass das lieber bleiben mir "Variablen global definieren". Da verlierst du schnell den Überblick. Benutze besser die Variante, welche Dirk vorgeschlagen hat, nämlich die Variablen als Parameter zu übergeben.
Der große Unterschied zwischen Call und Run ist, Run kann keine Variablen zurückgeben. Beispiel:
Public Sub Aufruf()
    Dim intValue As Integer
    Call Test(intValue)
    MsgBox intValue
    intValue = 0
    Application.Run "Test", intValue
    MsgBox intValue
End Sub

Public Sub Test(intValue As Integer)
    intValue = 666
End Sub

Nur wenn du per Run-Methode eine Funktion aufrufst, kann dir diese einen einzigen Wert zurückgeben.
Gruß
Nepumuk
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen