Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Cursor springt in Pampa (MultiLine TextBox)

Betrifft: Cursor springt in Pampa (MultiLine TextBox) von: Kilo
Geschrieben am: 11.08.2008 12:15:45

Hallo liebe VBA Profis

(Danke an Jürgen, der sich meines Problems annehmen wollte, aber der UpLoad meiner Datei war irgendwie fehlgeschlagen - hier der 2. Versuch)

ich bin auf ein für mich nicht lösbares Problem - vielleicht sogar Phänomen gestoßen...

Leider kann ich keine Phänomene dieser Art gebrauchen.
Damit es für Sie etwas anschaulicher wird, hab ich mein Problem als Beispiel (https://www.herber.de/bbs/user/54508.xls
) mal hochgeladen.

Kurze Beschreibung:
Ich habe eine Userform mit Textbox(Multi-Line und Scrollbars-Vertical), die mit Text aus der hinterlegten Tabelle „gefüttert“ wird. Es passen 3 Zeilen Text in die Textbox ohne dass die Scrollbar aktiv wird.

Hat mein Text 3 oder weniger Zeilen und ich klicke in die Textbox, steht der Cursor genau auf der angeklickten Stellen des Textes.

Hat der Text mehr als 3 Zeilen, wird (Problem 1) die Scrollbar nicht angezeigt – obwohl aktiviert – bis man das erste Mal in die TextBox klickt.

Und dann kommt das viel schlimmere Problem Nr 2: Der Cursor springt in eine Position genau um die o.a. 3 Zeilen versetzt.

Ich weiß nicht, wie ich das Problem lösen kann – ich brauche den Cursor da, wo ich hinklicke auch im „Mehrzeilen-Betrieb“. Kann mir jemand helfen????

Besten Dank im Voraus

Michael

  

Betrifft: AW: Cursor springt in Pampa (MultiLine TextBox) von: Kilo
Geschrieben am: 11.08.2008 12:21:31

Hallo liebe VBA Profis

(Danke an Jürgen, der sich meines Problems annehmen wollte, aber der UpLoad meiner Datei war irgendwie fehlgeschlagen - hier der 2. Versuch)

ich bin auf ein für mich nicht lösbares Problem - vielleicht sogar Phänomen gestoßen...

Leider kann ich keine Phänomene dieser Art gebrauchen.
Damit es für Sie etwas anschaulicher wird, hab ich mein Problem als Beispiel https://www.herber.de/bbs/user/54508.xls
mal hochgeladen.

Kurze Beschreibung:
Ich habe eine Userform mit Textbox(Multi-Line und Scrollbars-Vertical), die mit Text aus der hinterlegten Tabelle „gefüttert“ wird. Es passen 3 Zeilen Text in die Textbox ohne dass die Scrollbar aktiv wird.

Hat mein Text 3 oder weniger Zeilen und ich klicke in die Textbox, steht der Cursor genau auf der angeklickten Stellen des Textes.

Hat der Text mehr als 3 Zeilen, wird (Problem 1) die Scrollbar nicht angezeigt – obwohl aktiviert – bis man das erste Mal in die TextBox klickt.

Und dann kommt das viel schlimmere Problem Nr 2: Der Cursor springt in eine Position genau um die o.a. 3 Zeilen versetzt.

Ich weiß nicht, wie ich das Problem lösen kann – ich brauche den Cursor da, wo ich hinklicke auch im „Mehrzeilen-Betrieb“. Kann mir jemand helfen????


Besten Dank im Voraus

Michael



  

Betrifft: AW: Cursor springt in Pampa (MultiLine TextBox) von: Daniel
Geschrieben am: 11.08.2008 13:22:50

Hallo

das Problem ist, daß VBA bestimmte änderungen an den Elementen erst dann vornimmt, wenn man draufklickt und nicht schon, wenn man die Werte ändert.
aber man kann das Draufklicken mit ".SetFocus" simulieren, dann müsste die Darstellung der Scrollbars sofort passen.
das zweite Problem ist, daß nach der Eingabe der "Textboxcursor" natürlich am Ende steht.
wenn du jetzt die Textbox anklickst, dann versucht Excel, diese "Cursor-Postion" in den Sichtbaren Bereich zu setzen, dh. die Cursorpostion muss schon gleich nach der Eingabe wieder auf 1 gesetzt werden.

um das zu Erreichen, ergänze mal deine Commandbutton-Moacros um diese Befehle:

TextBox1.SetFocus '--- Scrollbar anzeigen
TextBox1.SelStart = 0 '--- Cursor an Anfang setzen

Gruß, Daniel


  

Betrifft: AW: Cursor springt in Pampa (MultiLine TextBox) von: Kilo
Geschrieben am: 11.08.2008 16:27:37

Hallo Daniel, zunächst einmal Danke für Deine Antwort.

Mir ist bekannt, dass das Aktivieren einer TextBox (wie auch immmer: anklicken, SetFocus-, Change- etc. Ereignis) den Cursor an die letzte Stelle innerhalb der Box setzt. Die Möglichkeiten der "Manipulation" über SelStart, Sel Lenght, SelText usw. sind mir sehr vertraut, bringen mich aber in diesem Fall nicht weiter.

Ich weiß nicht ob, Du mal mein Beispiel angeschaut hast. (Der 1. Link funktioniert nicht, weil die Klammer mit im Explorer auftaucht, aber der 2. geht) Da wird mein Problem sehr deutlich.
Man klickt eine Textstelle an, landet aber (um die entsprechenden Zeilen, die ohne Nutzung der Scrollbar vorhanden sind) nach unten versetzt.

Was ich suche ist die Möglichkeit, den Cursor wirklich da zu plazieren, wo man innerhalb der TextBox hinklickt.
Ggf. mit "Send- .... " o.ä. Befehlen, die verhindern, dass beim Aktivieren der TextBox der Cursor immer automatisch erstmal an der letzten Textstelle steht.

Ich habe in diesem Zusammenhang vor einigen Monaten mal einen Beitrag gelesen, wo mit Send oder ähnlichen Befehlen zum Beispiel das Auslösen des Click-Ereignissses "umschifft" wird. Sowas suche ich, um in meinem Fall den Cursor korrekt zu plazieren. Aber da ist mein Latein eine einzige Flatline!

Gruß Michael


  

Betrifft: AW: Cursor springt in Pampa (MultiLine TextBox) von: Daniel
Geschrieben am: 11.08.2008 18:51:28

Hi

und ich weiß nicht, ob du meine Lösung mal ausprobiert hast.
Ich habs zumindest gemacht und finde schon, daß sie das Problem auch genau so löst, wie du dir das wünscht:
- der Scrollbalken ist sofort sichtar (nicht erst nach dem ersten draufklicken)
- der Cursor ist wirklich an der Stelle, wo man auch draufklickt.

das Problem bei Exel ist, daß es beim Aktivieren der Textbox erst die aktuelle Cursorposition in den Sichtbaren bereich verschiebt und dann den cursor an die Bildschirmposition des Mauszeigers.

Gruß, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Cursor springt in Pampa (MultiLine TextBox)"