Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
152to156
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
152to156
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variablenproblem

Variablenproblem
28.08.2002 17:15:46
Rainer Quaas
Hallo Excel-User,

wie kann man eine Userform-Textbox-Variable an ein Modul-Makro übergeben, damit diese dort weiter verarbeitet und wieder in den Code der Textbox zurückgegeben wird?

In einem Change-Ereignis einer Userform-Textbox setze ich einen String in eine Variable. Diese Variable möchte ich in einem Modulmakro weiter verarbeiten und das Ergebnis in das Change-Ereignis der Userform-Textbox zurückgeben.

Mein Ansatz sieht folgendermaßen aus:

Sub Textbox1_Change()
Dim Variable AS String

CODE

Call Makro1

Code

End Sub

Sub Makro1()
Dim Variable AS String
‘im Debug-Modus steht jetzt “Variable =LEER”
CODE

End Sub


Mit „Public Variable As Sting“ hat’s auch nicht funktioniert.

Gruß Rainer

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

Betreff
Datum
Anwender
Anzeige
Re: Variablenproblem
28.08.2002 17:23:15
amolip
Hallo Rainer,

wenn ich das richtig verstehe, deklarierst Du die Variablen in den Prozeduren, womit sie auch nur für die Prozeduren gültig sind. Du musst die Variable als public in einem Modul deklarieren.
Hier eine Übersicht:

Deklaration -> Gültigkeitsbereich
Prozedur -> Prozedur
Modul - Private -> Modul
Modul - Public -> alle Module, Datei, alle Arbeitsblätter (Excel), Formulare
Datei - Private -> Datei
Datei - Public -> Datei
Arbeitsblatt - Private (Excel) -> Arbeitsblatt
Arbeitsblatt - Public (Excel) -> Arbeitsblatt

Gruss Uwe

Re: Variablenproblem
28.08.2002 17:39:18
Uli
Hi,

ich bin mir nicht ganz sicher ob dies dein Problem löst aber wie war's mit:

Public Function Makro1(strVar as string)

Code

Makro1=strVar

End Function

Anzeige
Re: Variablenproblem
28.08.2002 18:05:06
Rainer Quaas
Hallo Uwe,

danke für die ausführliche Erklärung. Leider funktioniert die Übergabe des Inhalts der Variablen von der Userform-Textbox-Change-Prozedur in das Modul-Makro dennoch nicht.

Wenn ich im Einzelschrittmodus arbeite und über den Call-Befehl in das Makromodul wechsele ist die Variable leer. Wurde das Makro abgearbeite und wird der Code von der Textbox weiterverarbeite, hat die Variable den ursprünglichen Inhalt.

Im Code der Userform steht am Anfang:
Option Explicit
Public Variable As String

Was "deklariere ich falsch"?

Gruß Rainer

Re: Variablenproblem
28.08.2002 18:14:31
Hajo_Zi
Hallo Rainer

vielleicht hilft folgender Ansatz
in ein modul Dein Makro z.b.

Gruß Hajo

Anzeige
Re: Variablenproblem
28.08.2002 18:21:35
amolip
Hallo Rainer,

ich habe mich über meine Übersicht gerade selber gewundert, ich muß das nochmal nachprüfen, aber es wird wohl so sein, dass Formularvariablen, auch wenn sie public sind, nur innerhalb des Formularmodules gültig sind - wie so oft, keine Erklärung, das ist eben so.
Du musst Deine Variable also in irgendeinem Modul deklarieren, natürlich als public, dann steht sie innerhalb des ganzen Projektes zur Verfügung.

mfg Uwe

Re: Variablenproblem
28.08.2002 18:50:31
MAlexander
Moin.

Wenn man innerhalb einer Userform ein z.B. Textfeld definiert hat, kann man aus jeder Ecke des Projektes auf dieses Feld zugreifen, wenn man den Zugriff qualifiziert:

with Userform
.Textfeldname="Hugo"
end with

MAlexander

Anzeige
Re: Variablenproblem
28.08.2002 19:04:03
Rainer Quaas
Vielen Dank an Uli, Hajo und Uwe.

Konnte mein Problem folgendermaßen lösen.

'Innerhalb des Userform-Codes
Option Explicit
Public Variable1 As String
Public Variable2 As String


Damit das Modul-Makro die Textboxvariable übernimmt , mußte ich auf die Userform verweisen.

Sub Makro1()
Dim UF As UserForm

Set UF = UserForm1

Select Case UF.Variable1 'vorher stand hier: Select Case Variable1

Case "Arbeit": Variable2 = "Vergnügen"

Code

End Select

'Damit Variable2 wieder von der Textbox übernommen wird, folgende Zeile

UF.Variable2 = Variable2

End Sub


Gruß Rainer







Anzeige
Re: Variablenproblem
28.08.2002 19:13:50
amolip
Hallo Rainer,

ich habe es gerade gemerkt, Alexander hat mich drauf gebracht.
Aber verstehen tu ich das nicht. Wir reden hier ja von Variablen und nicht von Objekten. Und das man Variablen qualifizieren kann, ist vollkommen unlogisch, was bei VBA aber nicht viel heißt. Also ich bin wirklich baff.

Gruss Uwe

Re: Variablenproblem
28.08.2002 19:16:38
amolip
Hallo Alexander,

Du hast im Prinzip recht, ich habe gerade erschüttert festgestellt, dass man in VBA Variablen qualifizieren kann.

Gruss Uwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige