Wie übergebe ich in Excel.VBA einen Varablenwert aus einem UserForm global in ein Arbeitsblatt?

3 Antworten

Beim Schließen eines Userforms wird es nicht wirklich geschlossen. Es wird nur versteckt. Du solltest auf die Steuerelemente des Forms zugreifen können und auch auf publics der Form.

Workarounds sind unschön, aber du könntest in das Userform versteckte Steuerelemente legen, auf die du zugreifen könntest, falls du auf Variablen des Forms nicht zugreifen kannst oder du musst halt die Daten in einem Hilfssheet zwischenablegen.

Leider habe ich hier kein Excel zur Verfügung, sonst würde ich es ausprobieren und konkreter werden können.

Werde es mal mit der Tag-Eigenschaft des UF versuchen.
Wenn Du noch eine Idee hast, immer her damit.   ;-)

1

global in ein arbeitsblatt - was soll das heissen?

wenn du ein formularfeld mit einer Zelle verbinden willst, kannst du das über die Feldeigenschaft ControlSource tun, also die Zell-Adresse (z.B. A1) dortselbst eintragen.



VBA

0
@Baujahr1970

DH! (das ist das Schöne hier: man lernt immer wieder was dazu!)

ich hätte versucht, das Formular per Makro aufzurufen, und (ggf. über eine Zwischenvariable) die Globale Variable umzudefinieren - Bin aber mit Formularfeldern ohnehin nicht mehr vertraut-zu lange her.

0

In UserForm (CommandButton_OK_Click()) z. B.:

Me.Tag = Me.TextBox_URL (Me steht für UserForm_GoogleSuche)

In der aufrufenden Prozedur:

Rückgabewert = UserForm_GoogleSuche.Tag
Unload UserForm_GoogleSuche
Set UserForm_GoogleSuche = Nothing