Access-o-Mania

Office-Forum (Deutsch/German) => Microsoft Excel => Thema gestartet von: Pergus am Mai 15, 2014, 13:38:50

Titel: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 15, 2014, 13:38:50
Hallo Excel-Guru's,

in einer UserForm (Ufrm) habe ich 4 TextBoxen (tbx1, tbx2, tbx3 und tbx4) und 2 CommandButtons (cbAbbrechen und cbOk).
die tbx2 bis...4 werden bei Initialisierung der UserForm ausgeblenden mit
Private Sub UserForm_Initialize()
Ufrm.tbx2.Visible = False
Ufrm.tbx3.Visible = False
Ufrm.tbx4.Visible = False
End Sub

Nach Eingabe des Benutzers in tbx1 soll die tbx2 wieder eingeblendet werden und der Focus drauf gesetzt werden mit
Private Sub tbx1_AfterUpdate()
Ufrm.tbx2.Visible = True
Ufrm.tbx2.SetFocus
End Sub

Genauso soll es bei Eingabe in die tbx2, ...3 und bei Eingabe in tbx4 soll der CommandButton cbOk den Focus erhalten.
Jedoch wird der Focus auf das CommandButton cbAbbrechen gesetzt.
Die Aktivierreihenfolge ist wiefolgt:
tbx1
tbx2
tbx3
tbx4
cbOk
cbAbbrechen
Weiß jemand bitte Rat?

Ich bedanke mich schon mal im Voraus für Eure Hilfe!  :)
Lg, Gustav
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 16, 2014, 15:08:58
...weiß denn niemand Rat?  :(
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Hondo am Mai 19, 2014, 08:18:25
Hallo,
Du musst zuerst den Focus auf das Unterformular setzen, danach auf das Formular
Ufrm.setfocus
cbOk.setfocus

Andreas
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 19, 2014, 08:34:46
Hallo Andreas,

danke für Deine Antwort, aber dieses Problem habe ich in einem Excel-UserForm, da habe ich kein Unterformular  ;)
Lg, Gustav
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Hondo am Mai 19, 2014, 09:12:06
Ach Ufrm heißt bei dir Userform...
Dann sollte einfach ein .setfocus das Problem beheben.
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 19, 2014, 09:35:27
...das habe ich gemacht, doch es funktioniert leider nicht.
Anstatt den .setfocus auf die TextBox (tbx2) zu setzen, wird der Focus auf den CommandButton (cbAbbrechen) gesetzt, der in der Aktivierreihenfolge an letzter Stelle steht.
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Hondo am Mai 19, 2014, 09:49:21
Zeig mal dein Code
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 19, 2014, 09:54:27
...habe ich bereits, siehe hier:
http://www.access-o-mania.de/forum/index.php?topic=19401.msg106755#msg106755 (http://www.access-o-mania.de/forum/index.php?topic=19401.msg106755#msg106755)
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 19, 2014, 13:55:44
Ich versuche mein Problem nochmals zu erläutern:

In einer Excel-Userform [Ufrm] soll der Benutzer in 4 Texboxen ([tbx1], [tbx2], [tbx3] und [tbx4]) nacheinander Eingaben tätigen.
Darum werden die Textboxen [tbx2], [tbx3] und [tbx4] vorerst (und zwar beim Intialisieren der Excel-Userform Ufrm) ausgeblendet.
Nach Eingabe des Benutzers in die Textbox [tbx1] soll die 2.Textbox [tbx2] eingeblendet werden und der Focus darauf gesetzt werden. Dasselbe soll bei den restlichen Textboxen ebenfalls passieren, wobei bei der 4.Textbox der Focus auf den CommandButton [cbOk)] gesetzt werden soll.
Die Aktivierreihenfolge ist wiefolgt:
[tbx1]
[tbx2]
[tbx3]
[tbx4]
[cbOk]
[cbAbbrechen]

Hoffe die Problemstellung einigermaßen verständlich erläutert zu haben!
Im Zweifelsfall einfach nachfragen  ;)
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 20, 2014, 12:53:28
...scheints ist diese Problematik doch nicht so einfach.
Hat niemand 'ne Ahnung?
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: DF6GL am Mai 20, 2014, 13:21:15
Hallo,

kannst Du die Excel-Datei mal hier hochladen?
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 20, 2014, 15:07:59
...gerne, bedarf aber noch einiger "Feinarbeit"  ;)
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Hondo am Mai 20, 2014, 15:34:12
Das Problem ist dass die Textfelder unsichtbar sind, und somit keinen Focus erhalten automatisch.
Lösung: mache alle Textfelder sichtbar. Dann benötigst du auch kein SetFocus wenn du die Aktivierungsreihenfolge einstellst.

Gruß Andreas
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 20, 2014, 15:40:32
...ist es denn nicht möglich, nachdem die einzelnen Textfelder wieder sichtbar sind, den Focus darauf zu setzen?
Ich hatte sie vorher alle sichtbar, funktionierte auch einwandfrei, allerdings kam jetzt der Vorschlag, die Textfelder einzeln einzublenden. Seitdem komme ich mit dem .setfocus nicht mehr weiter...  :(
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Hondo am Mai 20, 2014, 21:00:30
Hallo,
also wenn dir das so wichtig ist dann überdecke die Textfelder einfach mit einem Bezeichnungsfeld und im After Update veränderst du größe und höhe des Bezeichnungsfeld.
Ich hab das mal für dich gemacht...
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 20, 2014, 21:08:59
Wow, genial, funktioniert perfekt! DANKEEEEEEEEE Andreas :D

Darf ich Dich fragen, was da genau passiert, ich kann es nicht ganz nachvollziehen?
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Hondo am Mai 20, 2014, 22:12:46
Hallo,
funktioniert ganz einfach
ein Bezeichnungsfeld "cover1" mit gleichem Hintergrund ohne Rahmen eingefügt und so positioniert dass die Textfelder 2-4 verdeckt werden. Manuell veschoben und Top und Height Werte aufgeschrieben. Top+Height sind zusammen immer 144, und Top-Werte haben eine Schrittweite von 24 bei einem Startwert von 60. In Abhängigkeit des Feldes welches den After update auslöst wird der Top angepasst und die Höhe gesetzt:

Private Sub CoverTxt(ByVal lnum As Long)
    Ufrm_Rabatte.cover1.Top = 60 + 24 * (lnum - 1)
    Ufrm_Rabatte.cover1.Height = 144 - Ufrm_Rabatte.cover1.Top
End Sub

Beim Start wird CoverTxt 1 ausgeführt, d.h. Top = 60.
Beim letzten Feld wird CoverTxt 4 ausgeführt, d.h. Top = 132, und alle Felder sichtbar.

Gruß Andreas
Titel: Re: Probleme mit SetFocus in UserForm
Beitrag von: Pergus am Mai 21, 2014, 08:53:17
Vielen Dank Andreas,
großartig, wie Du das gelöst hast!

Nochmals vielen Dank!  :D
Gustav