Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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

Excel-Zelle greift auf globale Variable zu

Excel-Zelle greift auf globale Variable zu
20.10.2017 10:58:44
juhop
Hallo zusammen,
bekanntermaßen kann man einer Excel-Zelle (z.B. A1) den Wert einer anderen Zelle (z.B. B1) zuschreiben in dem man in die Zelle A1 "=B1" schreibt und wenn diese gefüllt wird, so wird die damit verbundene Zelle ebenfalls mit dem identischen Wert gefüllt.
Gibt es die Möglichkeit einer Zelle den Wert einer global definierten Variable zuzuweisen, sodass die Zelle den Wert der Variablen ausgibt, sobald die Variable gefüllt wird?
Wichtig dabei ist, dass die Variable nicht in die Zelle geschrieben wird sondern die Zelle die Variable eigenständig ausliest.
Vielen Dank und Gruß

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit einer UDF ... (owT)
20.10.2017 11:13:43
EtoPHG

AW: mit einer UDF ... (owT)
20.10.2017 13:20:56
juhop
Sorry, kann Du das bitte etwas erläutern? Ich verstehe es nicht ganz.
Also, wenn ich in VBA eine globale Variable z.B. Namens "Var1" definiert habe und dieser durch die Ausführung eines Makros ein Wert zugewiesen wurde, wie kann ich durch eine Excel-Zelle diesen Wert abfragen?
Gruß
Schau Dir doch alle AW an, vor Rückfragen, owT
20.10.2017 13:28:49
Michael
mit einer UDF ... (owT)
20.10.2017 11:13:44
EtoPHG

AW: Excel-Zelle greift auf globale Variable zu
20.10.2017 11:14:43
MatthiasG
Hallo juhop,
also Ansatz:
in ein allgemeines Modul:

Public global_var As Long
Function GetVar() As Long
Application.Volatile
GetVar = global_var
End Function
Dann kannst du in die Zelle "=GetVar()" schreiben, und sie wird bei jeder Berechnung aktualisiert.
Im VBA-Code kannst du das mit Application.Calculate erzwingen.
Gruß Matthias
Anzeige
AW: Excel-Zelle greift auf globale Variable zu
20.10.2017 13:48:19
juhop
Hallo Matthias, Vielen Dank für Deine Antwort.
Habe das mal eben so nachgebaut und kann eine Variable so tatsächlich aus VBA auslesen.
In meinem Fall existieren aber rund 20 Variablen sowie zweidimensionale Matrizen, die mit sehr vielen Werten gefüllt sind. Diese einzeln in Functions zu verpacken würde nicht funktionieren. Gibt es keine andere Möglichkeit aus einer Excel-Zelle direkt auf eine globale Variable zugreifen zu können?
AW: Excel-Zelle greift auf globale Variable zu
20.10.2017 13:59:24
MatthiasG
Hallo juhop,
hmm, man kann durch Application.Caller ermitteln, welche Zelle die Function aufgerufen hat:

Function GetVar() As Long
Dim z
Application.Volatile
Set z = Application.Caller
MsgBox z.Address
GetVar = global_var
End Function

Du könntest hier also abhängig von der aufrufenden Zelle den entsprechenden Wert zuurückgeben.
Allerdings ist diese Konstruktion ziemlich fragil (was passiert, wenn die Datenstruktur sich ändert? Du Zeilen/Spalten einfügen musst?). Vielleicht machst du es besser andersrum: Du hältst die Daten in der Tabelle und bearbeitest sie mit VBA. Dann schreibst du noch entsprechende Routinen, die die Daten aus den Tabellenblättern in die Variablen schreiben und umgekehrt. Vielleicht ist diese Vorgehensweise besser?
Grüße,
Matthias
Anzeige
AW: Excel-Zelle greift auf globale Variable zu
21.10.2017 19:19:10
EtoPHG
Hallo juhop,
Bei deinem angegebenen Level Excel & VBA gut habe ich angenommen, dass du weisst, was eine User Defined Function ist.
Jetzt muss ich meine Meinung revidieren, denn dein Zitat: Diese einzeln in Functions zu verpacken würde nicht funktionieren. Gibt es keine andere Möglichkeit aus einer Excel-Zelle direkt auf eine globale Variable zugreifen zu können? lässt mich daran zweifeln, dass du das Konzept und Zusammenspiel zwischen Excel und VBA verstehst. Du musst schon erläutern, woher denn deine Variablen und Matrizen kommen.
Gruess Hansueli
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige