Markierten Text in Listbox zurücksetzen

Hallo,

ich habe in einer Datei Excel 2010 mit VBA ein Fenster (UserForm), in dem ich Texte, die in unterschiedlichen Textboxen stehen, bearbeite. Es handelt sich hier um eine Bücherliste. In der gleichen Userform ist eine Listbox mit mehreren Einträgen, z.B. „Buch“, „Taschenbuch“, „Mappe“, „Ordner“.
Klicke ich auf z.B. „Taschenbuch“, wird automatisch mit Hilfe von

TextBox4.Text = ListBox1.Text

der Text „Taschenbuch“ in Textbox4 geschrieben. Soweit ist das OK.

In der Listbox ist „Taschenbuch“ noch immer blau markiert, weil dort ja zuletzt geklickt wurde.
Nun rufe ich ein anderes Buch auf, die Userform bleibt bestehen, alle Textboxen erhalten andere Inhalte, ABER die Markierung „Taschenbuch“ in Listbox1 bleibt bestehen. Ein Klick auf „Taschenbuch“ in der Listbox löst nichts aus. Um „Taschenbuch“ in die Textbox4 zu transportieren, muß ich zunächst in der Listbox1 einen anderen Text anklicken, um dann zum „Taschenbuch“ zurück zu kommen.

Ich müßte die Listbox1 „resetten“, bekomme das aber nicht hin. Wenn ich Listbox1.text="" setzte, erhalte ich eine Fehlermeldung.

Danke für Hinweise
Gruß
Pauli

In der Listbox ist „Taschenbuch“ noch immer blau markiert,
weil dort ja zuletzt geklickt wurde.
Nun rufe ich ein anderes Buch auf, die Userform bleibt
bestehen, alle Textboxen erhalten andere Inhalte, ABER die
Markierung „Taschenbuch“ in Listbox1 bleibt bestehen. Ein
Klick auf „Taschenbuch“ in der Listbox löst nichts aus.

Hallo Pauli,

in Listbox1 hast du „taschenbuch“ ausgewählt.
Wie, wo rufst du denn ein anderes Buch auf wenn du Listbox1
nicht benutzt?

Resetten kannst du z.B. so:
If ListBox1.ListIndex > 0 Then ListBox1.Selected(ListBox1.ListIndex) = False

Gruß
Reinhard

Um

„Taschenbuch“ in die Textbox4 zu transportieren, muß ich
zunächst in der Listbox1 einen anderen Text anklicken, um dann
zum „Taschenbuch“ zurück zu kommen.

Ich müßte die Listbox1 „resetten“, bekomme das aber nicht hin.
Wenn ich Listbox1.text="" setzte, erhalte ich eine
Fehlermeldung.

Danke für Hinweise
Gruß
Pauli

Hallo Reinhard,
danke für Deinen Hinweis, der funktioniert und somit mein Problem gelöst hat. Ich habe allerdings den Code geändert in
If ListBox1.ListIndex >= 0 Then
weil ansonsten der erste Eintrag (Index 0) nicht resettet wird.

In der Listbox ist „Taschenbuch“ noch immer blau markiert,
weil dort ja zuletzt geklickt wurde.
Nun rufe ich ein anderes Buch auf, die Userform bleibt
bestehen, alle Textboxen erhalten andere Inhalte, ABER die
Markierung „Taschenbuch“ in Listbox1 bleibt bestehen. Ein
Klick auf „Taschenbuch“ in der Listbox löst nichts aus.

Hallo Pauli,

in Listbox1 hast du „taschenbuch“ ausgewählt.
Wie, wo rufst du denn ein anderes Buch auf wenn du Listbox1
nicht benutzt?

Die Liste aller Angaben zu einem Buch (pro Zeile 1 Buch) stehen im 2.Tabellenblatt, sozusagen als „Datenpool“. Das Makro, ein anderes Buch aufzurufen füllt nur die Textfelder mit den neuen Daten, ohne daß die Listbox verwendet wird. Die meisten Daten sind ja einmalig, also Buchtitel, Verfasser, Verlag usw. Die Listbox enthält aber Varianten wie Buch, Taschenbuch, Mappe usw., die ich dann per Klick korrigieren kann, wenn ich versehentlich ein Taschenbuch als Buch eingetragen habe. Eine weitere Listbox enthält die Thematik, was bislang 23 Varianten sind, also von Belletristik über Recht bis hin zur Medizin. Dort bestand das gleiche Problem, was nun durch Deinen Code gelöst ist.

Resetten kannst du z.B. so:
If ListBox1.ListIndex > 0 Then
ListBox1.Selected(ListBox1.ListIndex) = False

Gruß
Reinhard

Gruß
Pauli

Um

„Taschenbuch“ in die Textbox4 zu transportieren, muß ich
zunächst in der Listbox1 einen anderen Text anklicken, um dann
zum „Taschenbuch“ zurück zu kommen.

Ich müßte die Listbox1 „resetten“, bekomme das aber nicht hin.
Wenn ich Listbox1.text="" setzte, erhalte ich eine
Fehlermeldung.

Danke für Hinweise
Gruß
Pauli