Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Listbox und ListFillRange

104 views
Skip to first unread message

Jürgen Preis

unread,
Feb 12, 2000, 3:00:00 AM2/12/00
to
Hallo NG !
Wie kriege ich das hin , dass in der Listbox nur Zeilen angezeigt werden in
denen etwas 'drin steht ! Ich probiere schon den ganzen Tag herum ,aber
irgendwie kriege ich das nicht hin.
Der Bereich mit Werten ist A2:A80 soll aber erweiterbar bis A250 sein.
Wenn ich jetzt für ListFillRange A2:A250 eingebe ,habe ich auch die ganzen
leeren Zeilen in der Listbox ,ich will aber nur die haben in denen etwas
'drin steht.
Bitte helft mir !
Danke im Voraus
MFG Jürgen

Frank Arendt-Theilen

unread,
Feb 13, 2000, 3:00:00 AM2/13/00
to
Hallo Jürgen,
1)
gehe dabei wie folgt vor:
A1: Überschrift
A2:Ax deine Werte (OHNE Leerzellen!!)
Menü EINFÜGEN/Namen/Festlegen/Name: "Bereich", Bezieht sich auf:
=INDIREKT("$A$2:$A$"&ZEILE($A$2)+ANZAHL2(BEREICH.VERSCHIEBEN($A$2;0;0;ANZAHL2($A:$A);1))-1)

Markiere z. B. Zelle B1, dann Menü DATEN/Gültigkeit/RegBl.
'Einstellungen', Zulassen: Liste, Quelle: =Bereich
OK

Das Listenfeld wird dynamisch an die eingegebenen Werte abgepaßt.
Wichtig: In Spalte A befinden sich nur die aufzulistenden Werte und
innerhalb der Liste befinden sich keine Leerzellen!

2)
Erstelle aus der Steuerelemente-Toolbox eine Listbox.
Öffne mit einem Rechts-Klick das Kontextmenü und wähle Code anzeigen.
Kopiere das fogende Makro hinein:

Private Sub ListBox1_GotFocus()
ListBox1.ListFillRange = "Tabelle1!$A$2:$A$" & _
Worksheets("Tabelle1").Range("$A$2").Row + _
Application.CountA(Worksheets("Tabelle1").Columns(1)) - 2
End Sub

MfG Frank
_____________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
E-Mail: Thei...@t-online.de


Am Sat, 12 Feb 2000 20:17:45 +0100, schrieb "Jürgen Preis"
<prei...@gmx.de> in microsoft.public.de.excel zu "Listbox und
ListFillRange":

Robert Gelbmann

unread,
Feb 13, 2000, 3:00:00 AM2/13/00
to
Hallo Jürgen!

> Wie kriege ich das hin , dass in der Listbox nur Zeilen angezeigt werden
in
> denen etwas 'drin steht ! Ich probiere schon den ganzen Tag herum ,aber
> irgendwie kriege ich das nicht hin.
> Der Bereich mit Werten ist A2:A80 soll aber erweiterbar bis A250 sein.
> Wenn ich jetzt für ListFillRange A2:A250 eingebe ,habe ich auch die ganzen
> leeren Zeilen in der Listbox ,ich will aber nur die haben in denen etwas
> 'drin steht.


Nachdem ein "dynamischer" Bereichsname bei mir (NT 4.0 SP5, XL 97 SR-2 (h))
nicht das gewünschte Ergebnis gebracht hat (und zudem Dr. Watson rief!),
sollte aber zumindest folgende kleine Ereignisprozedur funktionieren:

---snip---
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Me.ListBox1.ListFillRange =
Range("A2").Resize(Application.WorksheetFunction.CountA(Range("A2:A250")),
1).Address
End Sub
---snip---

Das Makro muß im Visual Basic-Editor dem Tabellenblatt hinterlegt sein, in
dem die Daten stehen.
Es wird dabei davon ausgegangen, daß
- sich Listbox und Daten am gleichen Blatt befinden,
- die ListBox den Namen ListBox1 trägt (also ggf. ändern),
- die Daten lückenlos sind (d. h. keine Zeile dazwischen leer ist) und
- die Daten - wie von Dir angegeben - (maximal) im Bereich A2:A250 stehen
können.

Beachte, daß es sich (abgesehen von der "Private Sub"- und der "End
Sub"-Zeile) nur um eine einzige Codezeile handelt (d. h. ggf. durch
"Transport" entstandenen Zeilenumbruch entfernen).
Das Programm bedient sich der Tabellenfunktion ANZAHL2 (englisch: CountA),
um die Anzahl der belegten Zellen festzustellen und verwendet "Resize" um
die Größe (hier nur die Anzahl der Zeilen) des Bereiches zu beeinflussen.


In der Hoffnung geholfen zu haben, verbleibe ich mit einem leisen

Servus aus Wien,
-Robert Gelbmann-

---
Microsoft MVPCE für Excel
<rgel...@roehrenbacher.at>


Frank Arendt-Theilen

unread,
Feb 13, 2000, 3:00:00 AM2/13/00
to
Verbesserung der Formel zu (siehe unten):
=INDIREKT("$A$2:$A$"&ZEILE($A$2)+ANZAHL2($A:$A)-2)
Der Rest bleibt.

MfG Frank
_____________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
E-Mail: Thei...@t-online.de


Am Sun, 13 Feb 2000 15:10:41 +0100, schrieb Frank Arendt-Theilen
<Thei...@t-online.de> in microsoft.public.de.excel zu "Re: Listbox
und ListFillRange":

Jürgen Preis

unread,
Feb 13, 2000, 3:00:00 AM2/13/00
to
Also , ich bin ja überwältigt von Eurer (Ihrer) Hilfsbereitschaft !
Nochmals herzlichen Dank für die Hilfe !
Es funktioniert !!!!
bis denne
Jürgen Preis

0 new messages