Clever-Excel-Forum

Normale Version: Allgemeinerer Ausdruck für Userform1
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Leute am letzten Tag dieses Jahres,

ich habe natürlich auch heute mal wieder ein Problem.

Auf meiner Userform1 habe ich einen CommandButton1 und eine ComboBox1 untergebracht. In Modul1 steht
die kleine Prozedur Aufruf, die durch den CommandButton1 auf der Userform1 aufgerufen wird. Die Prozedur
Aufruf soll mir den Wert anzeigen, den ich in der ComboBox1 ausgewählt habe. Das tut dieses kleine Programm
auch schön und brav:

Code:
Sub Aufruf()
Dim i&
MsgBox "Aufruf " & UserForm1.ComboBox1.Value
End Sub

Was mich stört ist der spezielle Ausdruck UserForm1. Wie formuliere ich allgemeiner, damit das Ganze auch dann funktioniert,
wenn die UserForm1 z.B. Formblatt oder sonstwie anders heißt?

Danke im voraus für eure Hilfe.
Moin!
Wenn Du die Sub ins Klassenmodul des Userform verschiebst, dann reicht das Schlüsselwort Me.
Außerdem solltest Du sie Private machen:
Code:
Private Sub Aufruf()
Dim i&
MsgBox "Aufruf " & Me.ComboBox1.Value
End Sub

Gruß Ralf
Andere Möglichkeit:
Übergebe der Sub (die jetzt ruhig in einem allgemeinen Modul stehen kann) die Userform als Parameter:
Code:
Sub Aufruf(UF As UserForm)
MsgBox UF.ComboBox1.Value
End Sub

Der Aufruf vom CommandButton läuft dann so:
Code:
Private Sub CommandButton1_Click()
Call Aufruf(Me)
End Sub

Gruß Ralf
Hi Ralf,

habe folgendes gemacht, bin auf im VBA Modus auf Einfügen\Klassenmodul gegangen.
Habe dann die Sub in das neu angelegte Modul Klasse1 verschoben. Funktionieren
tut das aber leider nicht. Was habe ich falsch gemacht?
Moin!
Ins Klassenmodul des Userform bedeutet nicht in ein neues Klassenmodul!

Meinen neuen Beitrag hast Du bereits gelesen?

Gruß Ralf
Lieber Ralf,

die Beiträge haben sich zeitlich wohl überschnitten. Ich danke dir herzlichst für Deine Hilfe und
wünsche Dir und dem gesamten Clever-Excel-Forum einen guten Rutsch ins Jahr 2017!