Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Allgemeinerer Ausdruck für Userform1
#1
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.
Antworten Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
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?
Antworten Top
#5
Moin!
Ins Klassenmodul des Userform bedeutet nicht in ein neues Klassenmodul!

Meinen neuen Beitrag hast Du bereits gelesen?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
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!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste