# Excel: Formular->Listenfeld (Listbox)



## Ceppi (15. Februar 2006)

Hallo,

Excel bietet ja die Möglichkeit, typische Windows-Forms wie z.B. eine List-oder ComboBox direkt auf einem Arbeitsblatt zu plazieren. Mein Ziel war, Auswahlmöglichkeiten (aus einem Zellbereich/Range) in eine Auswahlliste zu transportieren und den ausgewählten Wert in eine angegebene Zelle zu schreiben.

Ich erstelle mir also über die Symbolleiste Formular->Listenfeld ein solches Element und weise in den Eigenschaften die sogenannten Eingabebereiche und die Zellverknüpfung zu.

*Das Problem:*
Als zurückgegebenen Wert erhalte ich die Position der ausgewählten Option (Bsp.: Orange,Rot,Gelb als Optionen - ergibt bei Wahl von Orange 1,Rot 2 und Gelb 3). Eigentlich sollte doch aber der Optionswert in die Zelle geschrieben werden...

Ceppi


----------



## D@nger (15. Februar 2006)

Hallo,
kannst du mal die Mappe anhängen?


----------



## Ceppi (16. Februar 2006)

Hallo D@nger,

hier habe ich eine Beispiel-xls im Anhang beigefügt. Vielleicht hilft es, das problem nachzuvollziehen...

Ceppi


----------



## WaGutSo (15. März 2006)

Hallo Ceppi

Leider kann ich mit der von Dir verwendeten Listbox nichts anfangen, ich finde keine Eigenschaften bzw. Ereignisse. Ich schlage folgende Vorgehensweise vor:

- Aktiviere die Symbolleiste „Steuerelemente-Toolbox“.

- Klicke auf das Symbol „Listenfeld“, Entwurfsmodus wird eingeschaltet und Kursor  ändert                        sich in ein Fadenkreuz.

- Zeichne auf Deinem Tabellenblatt die Umrisse des Listenfeldes.

- Klicke mit der rechten Maustaste auf das Listenfeld.

- Klicke in dem Fenster das sich geöffnet hat auf „Eigenschaften“.

- Trage bei der Eigenschaft „ListFillRange“ den Bereich ein, aus dem die Daten kommen. In Deinem Beispiel „A3:A6“, Fenster „Eigenschaften“ schließen.

- Klicke noch mal mit der rechten Maustaste auf das Listenfeld.

- Klicke in dem Fenster das sich geöffnet hat auf „Code anzeigen“. Du gelangst so in den  VBA-Editor und zwar zur „Sub ListBox1_Click()“.

- Trage folgende Programmzeile ein: Worksheets(1).Range("c3").Value = ListBox1.Text 	Worksheets(1) bedeutet auf dem ersten Tabellenblatt und c3 ist die Zelle in die das Ergebnis eingetragen werden soll.

- Schließe den VBA-Editor.

- Beende den Entwurfsmodus.

Als Anlage die modifizierte Mappe.

Viel Erfolg
W. Gutermann


----------



## WaGutSo (15. März 2006)

entschuldigung, ich habe den Anhang vergessen.

Grüße 
Walter Gutermann

Anhang anzeigen Antworten.ZIP


----------

