online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Bjoern07 vom 26.06.2020, 14:11 Options

Rückkehr vom Arbeitsblatt zur modeless UserForm

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:

Private Sub OptionButton2_Click() 
Dim ar As Long 
ar = ActiveCell.Row 
Cells(ar, 16).Select 
AppActivate ("Microsoft Excel") 'Automatischer Fokuswechsel zum Arbeitsblatt 
End Sub

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 schreiben

Antwort 1 von Kauz vom 27.06.2020, 23:03 Options

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 vom 28.06.2020, 08:31 Options

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 vom 30.06.2020, 09:55 Options

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 vom 30.06.2020, 11:13 Options

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. vom 30.06.2020, 11:47 Options

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 vom 30.06.2020, 11:53 Options

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 vom 30.06.2020, 13:32 Options

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

Ähnliche Themen

User Form im Hintergrund?
Jo.Ker.  14.07.2007 - 59 Hits - 2 Antworten

Vba Userform
VBkid  27.09.2007 - 33 Hits -

Excel benutzen, trotz offener Userform
BlauLED  22.10.2007 - 162 Hits - 1 Antwort

Rückkehr der Bootsektor-Viren
Reactor_Men  08.01.2008 - 25 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026