Microsoft Excel

Herbers Excel/VBA-Archiv

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

Ereignis bei Auswahl in ComboBox | Herbers Excel-Forum


Betrifft: Ereignis bei Auswahl in ComboBox von: Frank
Geschrieben am: 24.07.2012 12:15:52

Hallo,

ich habe eine UserForm mit einer ComboBox, die eine einfache Liste als Drop-down enthält.

Dazu 2 kleine Fragen an die Experten:
:-)

1) Gibt es eine Möglichkeit, bei Auswahl eines Begriffs im Drop-down der ComboBox ein Ereignis auszulösen ?
Das Ereignis soll dabei für alle Begriffe der Liste gleichermaßen gelten, d.h. es soll immer ausgelöst werden, wenn ein Begriff ausgewählt wird, egal welcher das ist.

2) Beim Springen mittels Tab-Taste in eine TextBox (UserForm) wird bei mir immer der ganze Inhalt der TextBox markiert.
Gibt es einen Weg, dass beim Springen in die TextBox der Cursor immer automatisch ans Ende des Textes in der Box gesetzt wird ?

VG und vielen Dank Euch im Voraus für jede Hilfe !
Frank

  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Nepumuk
Geschrieben am: 24.07.2012 13:50:08

Hallo,

1. Private Sub ComboBox1_Change()
2. Ändere die EnterFieldBehavior-Eigenschaft auf 1 - fmEnterFieldBehaviorRecallSelection

Gruß
Nepumuk


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Frank
Geschrieben am: 24.07.2012 14:15:41

Hallo Nepumuk,

vielen Dank für Deine Antwort !

zu 1) Klappt bestens.

zu 2) Klappt leider nicht bzw. das hatte ich schon, es bewirkt aber keine Änderung bei mir.
Sobald ich einen Eintrag auswähle, wird immer der ganze Begriff markiert.
Kann das daran liegen, dass mein erster Eintrag in der Liste Leerzeichen am Anfang enthält und falls ja, gibt es hier eine Alternative ?

VG,
Frank


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Nepumuk
Geschrieben am: 24.07.2012 14:29:00

Hallo,

die Eigenschaft bestimmt dass die letze Auswahl wiederhergestellt wird. Wenn natürlich zuletzt der ganze Text markiert war dann wird diese Markierung wiederhergestellt. Du kannst es aber auch per Code lösen:

Private Sub TextBox1_Enter()
    With TextBox1
        .SelStart = .TextLength
    End With
End Sub

Private Sub TextBox2_Enter()
    With TextBox2
        .SelStart = .TextLength
    End With
End Sub

Gruß
Nepumuk


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Frank
Geschrieben am: 24.07.2012 14:43:04

Hallo Nepumuk,

vielen Dank nochmal !

Es tut mir leid aber auch das klappt nicht oder muss ich nach TextLength noch eine 0 etc. eingeben ?

Vielleicht habe ich es auch falsch beschrieben:
Ich klicke mit der Maus auf einen Eintrag in der Drop-down-Liste.
Wenn dieser Eintrag nun ausgewählt ist, soll er nicht markiert werden, sondern statt dessen der Cursor entweder am Anfang oder am Ende des ausgewählten Eintrags (das ist egal) stehen.

Hast Du vielleicht noch eine Idee dazu ?

VG,
Frank


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Nepumuk
Geschrieben am: 24.07.2012 15:05:49

Hallo,

wie wählst du aus einer Textbox was aus? Bzw. seit wann gibt es eine Dropdown-Liste in einer Textbox?

Gruß
Nepumuk


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Frank
Geschrieben am: 24.07.2012 15:11:00

Hallo Nepumuk,

es ist eine ComboBox, zumindest hast das bei meinem englischen Excel so, also eine Box mit einem kleinen Pfeil, der beim Anklicken eine Liste als Dropdown nach unten öffnet.

In der Dropdown kann man Einträge durch Anklicken auswählen, die dann in der eigentlichen Box erscheinen.

Bei mir ist das Standard in der UserForm-ToolBox.

VG,
Frank


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Nepumuk
Geschrieben am: 24.07.2012 15:25:39

Hallo,

2) Beim Springen mittels Tab-Taste in eine TextBox (UserForm) wird bei mir immer der  _
ganze Inhalt der TextBox markiert.
Gibt es einen Weg, dass beim Springen in die TextBox der Cursor immer automatisch ans Ende des Textes in der Box gesetzt wird ?
Also doch keine Textbox?

Bei einer Combobox wird es schwierig. Da müsste nach den Chage-Event ein Timer gestartet werden den sagen wir mal 10 Millisekunden später die Cursor-Position setzt. Denn der Change-Event ist in dem Moment durchgelaufen in dem du auf einen Eintrag in der Liste geklickt hast.

Gruß
Nepumuk


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Frank
Geschrieben am: 24.07.2012 15:30:58

Hallo Nepumuk,

vielen Dank und sorry, da war ich wohl in der ersten Email ein bisschen zu schnell.

Das hilft mir schonmal weiter - jetzt muss ich mal ein bisschen herumprobieren. :-)

Ich hätte aber noch eine kleine andere Frage - vielleicht hast Du da ja auch eine Idee dazu:
Ich habe bei zwei ComboBoxen ein Sub für das Enter-Ereignis erstellt, damit beim Springen zu den Boxen mittels Tab automatisch die Drop-downs nach unten geöffent werden.

Das komische ist, das funktioniert super, solange sich irgend etwas zwischen den ComboBoxen befindet, sobald ich sie jedoch hintereinander setze, funktioniert es nur noch bei der ersten.

Weisst Du vielleicht, woran das liegen könnte oder wie man es umgeht ?

Private Sub ComboBox71_Enter()
    ComboBox71.DropDown
End Sub
Private Sub ComboBox72_Enter()
    ComboBox72.DropDown
End Sub
VG,
Frank


  

Betrifft: AW: Ereignis bei Auswahl in ComboBox von: Nepumuk
Geschrieben am: 24.07.2012 15:49:51

Hallo,

ich kann dir sagen warum es nicht funktioniert: Weil beim Enter der anderen Box die Liste der einen durch die DropDown-Methode der anderen erst eingeklappt werden muss. Es kann immer nur eine Liste sichtbar sein. Aber eine Lösung hab ich keine. Warum benutzt du nicht Listboxen wenn die Auswahl sowieso immer offen sein soll?

Was soll eigentlich das ganze bewirken? Der User hat ein Formular vor sich was völlig anders reagiert wie die Standards in Windows. Da klappt in keinem einzigen Programm ein Combobox von selber auf und wieder zu. Das ist doch SchnickSchnak und kunterbunt wahrscheinlich dazu.

Gruß
Nepumuk


Beiträge aus den Excel-Beispielen zum Thema "Ereignis bei Auswahl in ComboBox"