Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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
Inhaltsverzeichnis

Function innerhalb eines Frame

Function innerhalb eines Frame
06.07.2018 11:53:33
Berg
Hallo,
ich prüfe die Textboxen in einer Userform auf dessen Inhalte. Dies mache ich über eine Function, da ich keine Klassen schreiben kann:
Function TextBoxPrüfung(crtl As Control) As Boolean
If crtl = "" Then
Exit Function
ElseIf Not IsNumeric(crtl) Then
crtl.BackColor = RGB(100, 100, 199)
MsgBox ("Eingabe ist nicht vom Type Numeric!")
TextBoxPrüfung = True
ElseIf crtl > 1 Then
crtl.BackColor = RGB(255, 255, 255)
crtl = Format(crtl, "#,##0.00")
Else
crtl.BackColor = RGB(255, 255, 255)
crtl = Format(crtl, "0.00")
End If
End Function
Hier definiere ich die Textboxen die davon betroffen sind:
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Call TextBoxPrüfung(ActiveControl)
End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Call TextBoxPrüfung(ActiveControl)
End Sub
Das ganze funktioniert sehr gut. Nur wenn ich um die Textboxen nachträglich einen Rahmen mache in der Userform (Frame1) zwecks der Übersichtlichkeit funktioniert der Code nicht mehr. Was und wie muss ich da ergänzen? Vorab besten Dank. Gruß

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Function innerhalb eines Frame
06.07.2018 12:20:19
Daniel
Hi
Frames sind im Prinzip Userforms in der Userform.
Wenn du eine Textbox im Frame aktivierst, ist das ActiveControl der Userform nicht die TextBox, sondern der Frame. Die Textbox ist dann das ActiveControl des Frames.
Du bekommst deswegen auch kein Exit-Event, wenn du von der Textbox im Frame auf ein Steuerelement außerhalb des Frames klickst, denn innerhalb des Frames behält die Textbox den Focus, nur der Frame verliert ihn.
Das ActiveControl eines Frames müsste dann auch über Me.ActiveControl.ActiveControl angesprochen werden.
Wenn du das Frame nur aus optischen Gründen verwendet, dann ersetzte es durch ein Label mit Rahmen ohne Hindergrund
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige