Clever-Excel-Forum

Normale Version: Wie erkennt die UDF das aufzurufende Controlelement?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Leute,

ich bastle mal wieder etwas mit VBA herum. In meiner Userform möchte ich einige Funktionen integrieren, die von
den verschiedensten Controlelementen aufgerufen werden können. Wie kann ich jetzt aber in der selbstgeschriebenen
Funktion erkennen, dass sie z.B. von der Textbox1 aufgerufen wurde und nicht von der Textbox2?
Hallo,

gebe das Element der Funktion mit.
Hallo Stefan,

danke für deine Antwort. Aber genau das ist ja das Problem. Ich weiß nicht wie man die einzelnen verschiedenen Controlelemente einer Funktion übergibt.

Ich kenne z.B. so etwas: Me.Controls("TextBox" & CStr(ix)) mit ix einer beliebigen Integer-Zahl, die dann die entsprechende Textbox spezifiziert.

Da ich nun nicht lange in der Literatur herumsuchen möchte, gebt mir bitte ein paar konkrete Beispiele zur Veranschaulichung.
Hallo,

ich hoffe, das eine Beispiel reicht.

Code:
Private Sub TextBox1_Change()
   MsgBox fncAusgabe(TextBox1)
End Sub

Private Sub TextBox2_Change()
   MsgBox fncAusgabe(TextBox2)
End Sub


Function fncAusgabe(objElement As Object) As String
   fncAusgabe = "In die " & objElement.Name & " wurde " & IIf(IsNumeric(objElement), "", "k") & "eine Zahl eingegeben."
End Function
Hallöchen,

nur zur Ergänzung. Falls jemand z.B. Forumlarsteuerelemente verwendet, kann man den "Aufrufer" mit Application.Caller ermitteln.