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

Public-Variable an Addin übergeben

Public-Variable an Addin übergeben
01.08.2008 13:05:49
Werner
Hallo liebe Forumsmitglieder,
kürzlich habe ich versucht, eine projektweit gültige Public-Variable aus einem Projekt an ein Addin weiterzugeben, doch der Versuch misslang. Sie soll dann auch für das gesamte Addin, nicht etwa nur für eine Prozedur in dem Addin, gültig sein. Geht so etwas überhaupt und, wenn ja, wie?
Grüße! Werner R.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Public-Variable an Addin übergeben
01.08.2008 13:34:00
Jochen
Hi,
deklariere die Variable im Add-In als Public und übergib den Wert aus deiner Mappe mit
der Run-Methode, steht mit Beispiel in der Hilfe.
mfg Jochen

AW: Public-Variable an Addin übergeben
01.08.2008 13:38:00
Tobias
Hallo Werner!
Vielleicht zur Inspiration:
Inhalt eines Moduls der xls-Datei:


Const A = "ASDF"
Sub GibText()
    Debug.Print A
    Call Application.Run("'" & Application.AddIns("MyAddIn").FullName & "'" & "!ModulMitGlobalerVariable.PutVariableTxt", A)
    Debug.Print Application.Run("'" & Application.AddIns("MyAddIn").FullName & "'" & "!ModulMitGlobalerVariable.GetVariableTxt")
End Sub


Inhalt des Moduls "ModulMitGlobalerVariable" der xla-Datei ("MyAddIn"):


Global txt As String
Public Function GetVariableTxt() As String
    GetVariableTxt = txt
End Function
Public Sub PutVariableTxt(newtxt As String)
    txt = newtxt
End Sub


Hat Dir das Beispiel weiterhelfen können?
Schönen Gruß, Tobias
http://www.tobiasschmid.de/

Anzeige
-> Dank Jochen und der VBA-Hilfe etwas kürzer
01.08.2008 13:43:00
Tobias
Vielleicht sollte ich öfter die VBA-Hilfe lesen.
Anstelle von:
"'" & Application.AddIns("MyAddIn").FullName & "'" & "!ModulMitGlobalerVariable.PutVariableTxt"
reicht auch einfach
"'MyAddIn.xla'!ModulMitGlobalerVariable.PutVariableTxt"
So einfach....

Besten Dank!
01.08.2008 13:57:33
Werner
Hallo Jochen, hallo Tobias,
vielen Dank für eure Anregungen!! Mit der Run-Methode usw. muss ich mich erst einmal vertraut machen,
habe aber alles registriert. So ganz einfach ist die Variablenübergabe in diesem Fall offenbar nicht!
Beste Grüße

AW: Public-Variable an Addin übergeben
01.08.2008 13:48:00
Nepumuk
Hallo Werner,
es gibt keine projektübergreifenden Variablen.
Du hast vier Möglichkeiten (Nach Aufwand und Schwierigkeit aufsteigend sortiert):
1. Eine Funktion im Projekt wird vom Addin aufgerufen und holt sich darüber den Wert.
2. Eine Funktion im Addin wird vom Projekt aufgerufen und der Wert damit reingeschoben.
3. Du setzt im Addin einen Verweis auf das Projekt. Damit werden die Variablen aus dem Projekt im Addin bekannt (das ist dann wie ein Projekt, allerdings nur in eine Richtung, denn die Variablen im Addin sind damit dem Projekt nicht bekannt und du kannst auch keine gegenseitigen Verweise erstellen).
4. Du benutzt ein zweites Addin mit einer Klasse, in welche die Variablen geschrieben werden. Im ersten Addin und im Projekt hast du je eine Klasse, welche auf die dritte Klasse zugreifen und darüber Werte austauschen.
Du könntest natürlich den Wert auch in eine Zelle oder eine externe Datei schreiben, von wo aus sich das Addin ihn wieder abholt. Aber das ist auch nicht das gelbe vom Ei.
Gruß
Nepumuk

Anzeige
-> Vielen Dank! Wieder was dazugelernt. owT
01.08.2008 13:59:00
Tobias

AW: Public-Variable an Addin übergeben
01.08.2008 14:16:00
Werner
Hallo Nepumuk,
deine Erklärungen sind jedenfalls z.T. verständlich, die erste Alternative ist für mich wahrscheinlich am
leichtesten durchführbar. Auch dir meinen herzlichen Dank!!
So eine Variablenübergabe hat es offenbar in sich! Werner R.

Variable an Addin übergeben BEISPIEL !!!
01.08.2008 16:29:00
Nepumuk
Hi,
ich hab euch mal ein ganz einfaches Beispiel gemacht in dem die Mappe1 einen Wert in die gemeinsam genutzte Klasse schreiben und die Mappe2 diesen Wert wieder auslesen kann. Das geht natürlich anders herunm genauso. Ist natürlich kein Fehlerhandling drin und auch sonst keine Schnörkel wie Kommentare. Wichtig sind dabei nur die Verweise auf das Addin, die auf PublicNotCreatable gesetzte Instanz der Klasse und die Art, wie über die Funktion der Verweis auf die Klasse gesetzt wird. Damit beide Mappen nämlich mit der selben Klasse arbeiten, darf im Addin nur eine Instanz davon existieren.
https://www.herber.de/bbs/user/54273.zip
Gruß
Nepumuk

Anzeige
AW: Variable an Addin übergeben BEISPIEL !!!
07.08.2008 13:08:07
Werner
Hallo Ne[pumuk,
noch etwas verspäteten Dank f. die Beispieldatei. (Hatte nicht mehr damit gerechnet.) Werner R.

293 Forumthreads zu ähnlichen Themen


Hi Leute,
gibt es in VBA keine andere Möglichkeit, Variable zu deklarieren außer
Dim abc As Integer, abd As Integer abe As Integer
usw.? Brauch über 100 Variable, das ist mühselig.
Typenkennzeichen dürfen übrigens nicht verwendet werden, falls das wichtig ist.
Grüße Gunnar...
Anzeige

Hallo Leute,
In meiner Arbeitsmappe kopiere ich eine! Zeile (aus dem TabBlatt „Grundformular“) - via Doppelklick auf einen Namen in „Übersicht“ - in andere TabBlätter.
(das geht wunderbar)
Sieht jemand eine Möglichkeit ob/wie das ganze mit einer variablen Zeilenanzahl, die im „Grund...

Hey !
Wie kann ich (kann ich überhaupt) ein Array als Public definieren, also als Globale-Variable?
Also so in etwa:
Public meinArray As Array
Dieses möchte ich dann an einer Stelle füllen und an andere Stelle wieder aufrufen...
Gibt Funktionen die ich auf ein Array anwenden...
Anzeige

Hallo Leut,
hab folgende Zeile in VBA die mir in der Zelle (LeZe, 10) eine Summe bilden soll:
'Worksheets("Auswertung").Cells(LeZe, 10).Formula = "=SUM(R[-5]C:R[-1]C)"
jetzt möchte ich aber die Länge der Summe durch eine Variable ersetzen,
also
-5 durch eine Variable z.B.: -...

Hallo,
ich habe ein Anwendungs oder Referenzobjektiven Fehler. Bei folgender Formel. Kann mir da jemand helfen?
Dim strFormel As String
For v = nTabelle1ZeileSTART To Zeilen
strFormel = "=INDIREKT($O" & v & ")"
With Cells(v, nTabelle1SpalteFBFunktion).Validation
...

Hallo,
habe mehrere Tabellen mit unterschiedlich vielen Zeilen aber immer nur 8 Spalten.
Im Makro habe ich die Tastenkombination
Shift+StRG+Pfeil runter
in Spalte C benutzt, damit nur bis zum Ende der Einträge markiert wird. So habe ich die Zellen markiert, in denen ich dara...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige