Microsoft Excel

Herbers Excel/VBA-Archiv

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

listbox



Excel-Version: 10.0 (Office XP)

Betrifft: listbox
von: Michaela
Geschrieben am: 04.06.2002 - 16:26:51

Hallo nochmal!
Ich hab die Befürchtung das keiner so recht versteht was meine Frage ist.
Hier also nochmal etwas ausführlicher.

In Tabelle1 habe ich eine Listbox mit den Inhalten aus Tabelle2 (Artikel).
Ich möchte das der von mir ausgewählte Artikel aus der Listbox (Auswahl erfolgt durch doppelklick) in die nächste freie Zeile eines bestimmten Bereichs in Tabelle1 erscheint.
Dabei soll allerdings nicht alles eingefügt werden was in der Listbox steht, sondern nur 2 Spalten.

Ich hoffe ich habe mich etwas verständlicher ausgedrückt und jemand kann mir helfen.

Ich bitte um eine "Anfängerlösung" da ich nicht sehr viel erfahrung mit VBA habe.

Gruss aus Berlin

Michaela


  

Nicht ganz klar, aber...
von: Rolf Kersjes
Geschrieben am: 04.06.2002 - 17:25:31

Hallo Michaela,

nehmen wir an du hast eine Listbox mit dem Namen ListBox1 und die steht in der Tabelle1, dann kopierst du die folgende Procedur in das Klassenmodul der Tabelle1:


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim AnzZeil As Long
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
AnzZeil = ws1.Range("A1").CurrentRegion.Rows.Count 'letzte Zeile im Bereich um celle A1
ws1.Cells(AnzZeil + 1, 1) = ListBox1.List(ListBox1.Index, 0) 'auslesen Spalte 1
ws1.Cells(AnzZeil + 1, 2) = ListBox1.List(ListBox1.Index, 2) 'auslesen Spalte 3
End Sub

Das Problem ist deine Beschreibung "die nächste freie Zelle in einem bestimmten Bereich in Tabelle1". Damit kann man so nichts anfangen. Ich bin in meinem Beispiel davon ausgegangen, dass du in den Spalten a bis .. Daten eintragen willst. Und die Zeilen untereinander haben keine leerzeilen und rechts neben der Spalte .. ist eine freie Spalte.

Wenn nicht musst du schon etwas genauer beschreiben, was du mit bestimmten Bereich meinst.

Rolf

  

Re: Nicht ganz klar, aber...
von: Michaela
Geschrieben am: 05.06.2002 - 09:03:41

Hallo Rolf!

Die Antwort bringt mich schon mal ein ganzen Stück weiter...danke.
Allerdings wird jetzt IMMER nur die 2. Zeile der Listbox in mein Tabellenblatt eingetragen :-( ...egal welche Zeile ich auswähle mit Doppelklick:

Listbox:
102 Radiergummi
103 Lineal
104 Bleistift
105 Kugelschreiber.....usw.

Mit deiner Lösung schreibt er mir jetzt IMMER 103 Radiergummi in mein Tabellenblatt, auch wenn ich auf Bleistift, Kugelschreiber...oder so klicke.

Mit "bestimmten Bereich" meine ich z.B. das die Werte nicht ab Zeile 1 sondern ab Zeile 15 in Tabelle1 eingetragen werden.

Hoffe du kannst mir nochmal weiterhelfen.
Danke!!!

Gruss aus Berlin,

Michaela

  

Mein Fehler....
von: Rolf Kersjes
Geschrieben am: 05.06.2002 - 11:00:25

Hallo Michaela,

war mein Fehler, hier die richtige Prozedur:


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim AnzZeil As Long
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
AnzZeil = ws1.Range("A15").CurrentRegion.Rows.Count 'letzte Zeile im Bereich um celle A1
ws1.Cells(AnzZeil + 15, 1) = ListBox1.List(ListBox1.ListIndex, 0) 'auslesen Spalte 1
ws1.Cells(AnzZeil + 15, 2) = ListBox1.List(ListBox1.ListIndex, 2)  'auslesen Spalte 3
End Sub

Hatte eine falsche Eigenschaft (ListIndex) gesetzt.

Das mit der Zeile 15 funktioniert nur so, wenn in zeile 14 nichts steht und keine leerzeile innerhalb der Liste vorhanden ist.

Rolf



 

Beiträge aus den Excel-Beispielen zum Thema "listbox"