Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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
aktive TextBoxen einfärben in Frames
23.07.2021 23:14:53
Micha
Hallo liebe Mitglieder,
ich habe folgendes Problem:
ich bekomme es zwar mit VBA hin, die aktiven Textboxen beim Durchlauf mit dem Tab einzufärben und bei verlassen auch wieder auf weiß zu reseten, aber sobald ich per Tab in den nächsten Frame zu den Textboxen wechsle, bleibt die letzte Textbox im Ausgangsframe farbig... :(
Wenn ich dann per Mausklick innerhalb des Frames die Textbox wechsle, funktioniert es wieder.
Was habe ich im Code im Zusammenhang mit Frames übersehen bzw. nicht berücksichtigt ?
Kann mir jemand auf die Sprünge helfen?
VG,
Micha
https://www.herber.de/bbs/user/147281.xlsm

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aktive TextBoxen einfärben in Frames
23.07.2021 23:34:24
Daniel
Hi
Frames sind im Prinzip eigenständige Userforms innerhalb der Hauptuserform.
Beispielsweise haben sie ihr eigenes ActiveControl.
Dh wenn du eine Textbox innerhalb eines Frames anklickst, dann ist der Frame das ActiveControl der Userform und die Textbox das ActiveControl des Frames.
klickst du danach auf ein Steuerlement außerhalb des Frames, dann verliert der Frame seinen Status des ActiveControl der Userform, aber die Textbox bleibt das ActiveControl des Frames. Das ist zwar nicht wirksam, weil der Frame selbst nicht Active ist, aber es bewirkt, dass das Exit-Event der Textbox nicht ausgelöst wird, weil die Textbox ansich ja weiterhin das ActiveControl bleibt.
Das ganze funktioniert so ähnlich wie das SheetDeactivate-Event für Worksheets. Das löst auch nicht aus, wenn du ein anderes Blatt in einer anderen Datei aktivierst, dazu brauchst du dann zusätzlich das WorkbookDeactivate-Event.
Wenn du weiterhin mit Frames arbeiten willst, dann müsstest du zusätzlich einen Code in das ExitEvent des Frames schreiben, in welchem du dann das ActiveControl des Frames entfärbst.
du brauchst also so einen Code für alle drei Frames:

Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Frame1.ActiveControl.BackColor = vbWhite
End Sub
Andere Möglichkeit: du verzichtest auf Frames. Wenn du diese nur verwendest um eine Rahmenlinie zu zeichnen, dann nimm besser einfach ein Label mit transparentem Hintergrund und Rahmenlinie.
dann sollten die ExitEvents der Textboxen ausreichen.
Gruß Daniel
Anzeige
AW: aktive TextBoxen einfärben in Frames
24.07.2021 10:21:53
Micha
Moin Daniel,
vielen Dank für diese tolle und umfangreiche Erklärung!
Damit habe ich es endlich begriffen und kann selbständig weiterarbeiten.
Danke Dir und Gruß,
Micha

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige