Userform - Wechselbeziehung Textbox Scrollbar

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Userform - Wechselbeziehung Textbox Scrollbar
von: Rainer Quaas
Geschrieben am: 12.06.2002 - 18:37:52

Hallo Excel-User

In einer Userform (UF) befinden sich folgende Objekte:

1. Textbox1 enthält einen String
2. Textbox2 enthält nur Zahlen (Min = 1, Max = Len(Textbox1.Value)
3. Scrollbar (Min = 1, Max = Len(Textbox1.Value)

Über die Scrollbar regel ich welcher Character in Textbox1 selectiert werden soll, gleichzeitig wird die Position des selektierten Characters der Textbox1 in Textbox2 angezeigt.

Dazu verwende ich folgendes (funktionierendes) Makro:

~begin~
Private Sub scrB_Change()

Textbox2.Value = scrB.Value

scrB.Value.SetFocus

Textbox1.SelStart = scrB.Value - 1
Textbox1.SelLength = 1
Textbox1.SetFocus

End Sub
~ende~

Nun habe ich vergeblich viel Zeit investiert, um über eine Eingabe in Textbox2 die Position des selektierten Characters der Textbox1 anzuzeigen und gleichzeitig die Werte für die Scrollbar nachzuführen.

Bitte um Hilfe zur Lösung dieses Problems.

Ist es möglich in Textbox1 einen Bereich farblich zu unterlegen (selektieren) aber gleichzeitig den Focus auf ein anderes Objekt in der UF zu setzen?

Gruß Rainer

nach oben   nach unten

Re: Userform - Wechselbeziehung Textbox Scrollbar
von: Rainer
Geschrieben am: 13.06.2002 - 11:49:50

Lieber Namensvetter!

Dein Problem hat mir keine Ruhe gelassen - nach mehrstündigem! Tüfteln fiel es mir wie Schuppen aus den Haaren!!! Es ist nur eine Klitzekleinigkeit, die ich noch dazu vor einigen Monaten schon einmal benötigte ! :-(


Option Explicit

Private Sub UserForm_Initialize()
    With UserForm1
        ' Hier liegt des Pudels Kern !!!
        ' Kann natürlich auch über das Eigenschaftsfenster eingestellt werden!
        .TextBox1.HideSelection = False
    End With
End Sub

Private Sub btn_Beenden_Click()
    Unload Me
End Sub

Private Sub scrB_Change()
    With UserForm1
        .TextBox1.SelStart = scrB.Value - 1
        .TextBox1.SelLength = 1
        .TextBox1.SetFocus
        .TextBox2.Value = .scrB.Value
    End With
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    With UserForm1
        .scrB.Max = Len(.TextBox1.Value)
    End With
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    With UserForm1
        If .TextBox2.Value = "" Or Not IsNumeric(.TextBox2.Value) Then .TextBox2.Value = 1
        If .TextBox2.Value > .scrB.Max Then .TextBox2.Value = .scrB.Max
        .scrB.Value = CInt(.TextBox2.Value)
        .TextBox1.SelStart = .scrB.Value - 1
        .TextBox1.SelLength = 1
        .TextBox1.SetFocus
    End With
End Sub

Lieben Gruß
Rainer

nach oben   nach unten

Re: Userform - Wechselbeziehung Textbox Scrollbar
von: Rainer Quaas
Geschrieben am: 15.06.2002 - 00:50:04

Hallo Rainer,

viiiiiiiielen Dank!!!

Wenn ich daran denke wie lange ich an diesem Problemchen gesessen habe ....

Es lag wirklich an " .TextBox1.HideSelection = False"

Anfänglich funktioniert die Sache immer noch nicht einwandfrei, da nach Exit TextBox2 immer der ganze String selektiert war. Dies lag aber unglücklicher Weise an der Aktivierreihenfolge, da nach Verlassen der TextBox2 TextBox1 automatisch angesprungen wurde.

Dank Dir funktioniert jetzt diese Sache einwandfrei.

Auf zum nächsten Prolem.

Gruß Rainer


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Userform - Wechselbeziehung Textbox Scrollbar"