Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Rückkehr vom Arbeitsblatt zur modeless UserForm





Frage

Hallo zusammen, ich habe eine große Tabelle. Um dort besser navigieren zu können, möchte ich mit Optionbuttons auf einer UserForm direkt zu bestimmten Zellen springen können. Um die UserForm nicht jedesmal wieder neu aufrufen zu müssen, habe ich sie nicht modal (vbModeless) gemacht. Folgendes wird ausgeführt, wenn man auf einen Optionbutton klickt: [code]Private Sub OptionButton2_Click() Dim ar As Long ar = ActiveCell.Row Cells(ar, 16).Select AppActivate ("Microsoft Excel") 'Automatischer Fokuswechsel zum Arbeitsblatt End Sub[/code] Wenn ich den Fokus wieder auf der UserForm haben möchte, mache ich das durch drücken des Shortcuts, der auch verwendet wird um das Makro normal zu starten. Ist das die richtige Vorgehensweise (bzgl. Speicherverbrauch z. B.)? Wenn ich nach der Rückkehr vom Arbeitsblatt zur UserForm etwas ausführen möchte, z. B. den Fokus auf den OptionButton2 setzten (so daß die gestrichelte Linie wieder um den Text erscheint), wo muß das plaziert werden? Wenn ich es in die nächste Zeile, nach dem Aufruf von "AppActivate", plaziere, funktioniert es nicht. Auch unter "Private Sub UserForm_Activate()" funktioniert es nicht. Ich habe schon überall nach einer Lösung gesucht, aber nichts gefunden. Wer weiß Rat? Gruß, Björn

Antwort 1 von Kauz

hallo Björn..
hab auch mit ähnlichen Problemen zu tun....
wechsel zwischen Tabellenblatt und Userform.

Bin auf dieser Ebene auch nicht fit....
muß auch mit der Methode "Try and Error" arbeiten. :-)

Hast Du es schon mal versucht mit >Optionbutton2.Setfocus<?

z.B.:
Private Sub UserForm_Enter()"
Optionbutton2.Setfocus
end sub

wenn es bei "Private Sub UserForm_Activate()" nicht geht.

Ich habe mir auch eine Public-Variable eingerichtet, in der sich etwas gemerkt wird, und anhand deren Inhalt dann bei Rückkehr etwas bestimmtes passiert.....
Die Variable heißt bei mir sinnigerweise Lotse.....
nur mal so als Anregung.

Gruß
Andreas

Antwort 2 von fedjo

Hallo Björn,
versuch doch mal die Eigenschaft der UserForm ShowModal auf True zu setzen. Damit kannst du dann in der Tabelle und UserForm abwechselnd arbeiten.

Vielleicht hilft dir das weiter.

Gruß
fedjo

Antwort 3 von Bjoern07

Hallo zusammen,

vielen Dank für Eure Antworten.

@Andreas:

Einen Enter()-Event gibt es bei der Userform nicht. Deshalb hatte ich es mit dem Activate()-Event versucht.

Deshalb wäre es wichtig zu wissen, wo oder mit was VB weitermacht (mit welchem Event) nach der Rückkehr zur modeless Userform.

@fedjo:

Zitat:
versuch doch mal die Eigenschaft der UserForm ShowModal auf True zu setzen. Damit kannst du dann in der Tabelle und UserForm abwechselnd arbeiten.

Nein, eben nicht. Wenn Du die Userform modal hast (= Default) , mußt Du Sie zuerst schließen, wenn Du in der Tabelle arbeiten möchtest. Oder habe ich da was übersehen?

Gruß, Björn

Antwort 4 von Kauz

Hallo Bjön...
stimmt Enter gib's nicht.

Hab bei mir mal nachgeschaut:

Ich schließe eine Eingabe in einem bestimmten Feld auf der User form ab... (TxtBem (KeyUp)...
dann werden Daten auf das Tabellenblatt geschrieben.
Danach ändere ich den Inhalt eines Eingabefeldes...
setze auf diesem den Fokus...
und ändere dann noch den Inhalt eines zweiten Feldes:

TxtAnz.Value = ""
TxtAnz.SetFocus
TxtBem.Value = ""

Damit erreiche ich, dass auf der Userform permanent in diese beiden Felder Eingaben gemacht werden können:
TXTAnz --> die Stückzahl..... dann Enter
Fokus auf TxtBem
Eingabe in TxtBem..... dann Enter
Es wird ein Modul aufgerufen, um die Eingaben auf das Blatt zu schreiben...
Danach kommen die 3 Befehle (s.o.)
+++ Der Code ist komplett auf der Userform++++

Auf dem Tabellenblatt gibt es keinen nenneswerten Programmcode.

Vielleicht hilft Dir diese Beschreibung etwas weiter.

Gruß
Andreas

Antwort 5 von M.O.

Hallo Björn,

ich habe zwar keine Lösung aber einen Alternativ-Vorschlag.
Statt einer Userform könntest du in der Tabelle eine benutzerdefinierte Symbolleiste anlegen.
Eine Beispieldatei findest du hier.

Gruß

M.O.

Antwort 6 von Kauz

Hallo Björn...
hab noch mal Deinen ersten Beitrag gelesen.... Hmmm

Du willst ja in den Tabellenblättern direkt was eingeben, und verlässt damit komplett die Userform (was ich nicht mache).

Vielleicht geht es, wenn in dem Modul , in dem der Aufruf der Userform <Userform.show> steht noch die Zeile
<Optionbutten2.Setfokus> nachsetzt.

Ich hoffe Du verstehst was ich meine.

Gruß
Andreas

Antwort 7 von Bjoern07

Hallo zusammen,

vielen Dank für Eure Antworten.

@ M.O.:

Das hatte ich auch schon überlegt. Wenn ich gar keine Lösung für mein Problem finden sollte, wäre dies ein möglicher Workarround.

@ Andreas:

Zitat:
Vielleicht geht es, wenn in dem Modul , in dem der Aufruf der Userform <Userform.show> steht noch die Zeile
<Optionbutten2.Setfokus> nachsetzt.

Das hatte ich auch schon probiert - das funktioniert allerdings nur, wenn die Userform das erste Mal aufgerufen wird. Kehrt man vom Arbeitsblatt zur noch offenen UserForm zurück, wird das nicht mehr ausgeführt.

Gruß, Björn

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: