Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox nicht aktiv / Auswahl nicht möglich

Forumthread: Listbox nicht aktiv / Auswahl nicht möglich

Listbox nicht aktiv / Auswahl nicht möglich
24.10.2012 10:15:21
Constantin
Hallo,
ich bräuchte fachlichen Rat zu folgendem Problem:
Beim Öffnen einer Datei (Mappe1.xlsm) soll eine Listbox1, die ich in Tabelle2 eingefügt habe, mit den Werten A1:A10 aus Tabelle3 automatisch gefüllt werden. Diese Wertetabelle hat den Namen „Einträge“ zugewiesen bekommen.
Das Laden scheint zu funktionieren, allerdings ist der Schieberegler inaktiv bzw. die Werte lassen sich nicht anklicken. Mit einem Klick sollte der ausgewählte Eintrag in Zelle A10 der Tabelle2 als Filter „enthält“ eingesetzt werden.
Mit diesem Befehl lade ich die Listbox:
Worksheets("Tabelle3").ListBox1.ListFillRange = "=Einträge".
Das Aktivsetzen/Auswahl scheint allerdings nicht zu funktionieren. Wer könnte mir hier einen Tipp geben?
Vielen Dank.
Grüße, Constantin

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox nicht aktiv / Auswahl nicht möglich
24.10.2012 10:25:43
hary
Hallo
Zitat:
"soll eine Listbox1, die ich in Tabelle2 eingefügt habe"
Codezeile:
Worksheets("Tabelle3").ListBox1.ListFillRange = "=Einträge"
das passt doch nicht.
gruss hary

AW: Listbox nicht aktiv / Auswahl nicht möglich
24.10.2012 10:39:30
Constantin
Hallo hary, hallo Matthias,
die Listbox1, die ich in Tabelle2 angelegt habe, bezieht ihre Werte aus Tabelle3, A1:A10. Zumindest ist das die Intention.
Enabled ist "true" in den Eigenschaften. Tabelle3 ist ausgeblendet. Tabelle2 wird beim Öffnen der Datei eingeblendet. Mir ist allerdings soeben aufgefallen, wenn ich aktiv (manuell) auf ein anderes Tabellenblatt gehe (z.B. Tabelle1, die es in dieser Mappe auch gibt) und dann wieder zurück in Tabelle2 wechsle, wo die Listbox eingefügt wurde, kann ich den Schieberegler bewegen und eine Auswahl treffen. Worin könnte die Ursache liegen?
Danke.
Grüße, Constantin

Anzeige
ListBox1.ListFillRange = "Einträge"
24.10.2012 11:03:49
Matthias
kwT

AW: hier das konkrete Beispiel
24.10.2012 13:50:51
Constantin
Hallo Matthias,
habe ich so umgesetzt - vielen Dank. Nach dem Befüllen erscheint allerdings ein Fadenkreuz am Schieberegler bzw. auf den Einträgen (und kein Pfeil). Erst nach einem manuellen Klicken in ein anderes Tabellenblatt und wieder zurück erscheint der Cursor als Pfeil in der Listbox. Das Phänomen kann ich mir nicht so recht erklären.
Grüße, Constantin

Anzeige
Blatt oder Objekt geschützt ?
24.10.2012 10:27:13
Matthias
Hallo
Schau auch in den Eigenschaften der Listbox bei Enabled (sollte True sein)
Gruß Matthias

AW: Blatt oder Objekt geschützt ?
24.10.2012 10:55:05
Constantin
... mit dem "Kunstgriff" des Tabellenwechsels bin ich leider nicht viel weiter gekommen (letzter Eintrag der Liste wurde nicht angezeigt).
Das Ziel, wäre, die Listbox1 in Tabelle2 mit den Zellinhalten A1:A10 der Tabelle3 (mit oder ohne Bereichsname) zu befüllen (beim Öffnen der Mappe) und danach die Auswahlmöglichkeit zu "aktivieren".
Der gewählte Eintrag (Click) soll dann als Filterkriterium ("enthält") für den Filter in A10 (der Tabelle2) verwendet werden.
Grüße, Constantin

Anzeige
AW: Blatt oder Objekt geschützt ?
24.10.2012 11:54:35
Constantin
Hallo Matthias,
Rückmeldung zur Formel: Den Befehl ListBox1.ListFillRange = "Einträge" habe ich bei Private Sub Workbook_Open() eingestellt. Allerdings erscheint dann eine Fehlermeldung Listbox1/"Variable nicht definiert". Ist meine Syntax Worksheets("Tabelle2").ListBox1.ListFillRange = "=Einträge" nicht verwendbar? Fehlermeldung erscheint hier keine.
Grüße, Constantin

Anzeige
Listbox nach dem Befüllen noch nicht aktiv
24.10.2012 14:55:33
Constantin
Hallo Matthias oder hary,
an dieser Stelle nochmal die Nachfrage - wenn die Listbox nach dem Befüllen noch nicht aktiv ist (Fadenkreuz anstatt Pfeil als Cursor) und dies erst nach einem manuellen Wechsel der Tabellenblätter geschieht - lässt sich das irgendwie erklären? bzw. wie könnte ich das Problem evtl. lösen oder "umgehen"?
Grüße, Constantin

Anzeige
Lad bitte deine Datei hoch ...
24.10.2012 23:50:31
Matthias
Hallo Constantin
Entferne bitte vorher persönliche Daten
Die Listbox und den Code läßt Du bitte drin.
Dann könnte man schauen was da los ist, sonst kommen wir so nicht weiter
Gruß Matthias

AW: Lad bitte deine Datei hoch ...
25.10.2012 10:11:23
Constantin
Hallo Matthias,
die Datei lässt sich leider nicht so einfach für mich als upload aufbereiten. Wäre natürlich die sinnvollste Vorgehensweise. Ich habe alle anderen Programmteile mal gelöscht, dann funktioniert es auch. An der Datei liegt es also nicht, die in diesen Thread eingestellt wurde. Im Vorfeld läuft eine Berechtigungsprüfung ab (beim Öffnen der Datei), Tabellen werden eingeblendet. Dann wird die Liste geladen bzw. zugewiesen. Ab diesem Zeitpunkt sind die beiden Buttons "Füllen" und "Leeren" der Liste aktiv (Pfeil als Cursor). Nur die Einträge, die jetzt schon drinstehen bzw. mit Füllen nochmal geladen werden können, lassen sich nicht anklicken (Cursor erscheint als Kreuz). Sobald ich nur einmal auf ein anderes Tabellenblatt klicke und wieder zur Listbox gehe, lässt sich alles anwählen. Gibt es keinen "Umweg"?
Vielen Dank erstmal - mehr kannst Du ohne Datei wahrscheinlich nicht machen. Vielleicht experimentiere ich noch etwas.
Grüße, Constantin

Anzeige
AW: Lad bitte deine Datei hoch ...
26.10.2012 08:21:27
Constantin
... noch ein Nachtrag von meiner Seite: Durch Verschieben der Listbox an eine andere Stelle in der Tabelle wurden die Listboxeinträge von Anfang an anwählbar (wie im erhaltenen Beispielprogramm). Jetzt klappt es also. Vielen Dank für die Unterstützung.
Grüße, Constantin

Danke für Deine Rückmeldung - kwT
26.10.2012 09:54:47
Matthias
Anzeige
Anzeige

Infobox / Tutorial

Listbox aktivieren und richtig befüllen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Deine Excel-Datei und gehe zu Tabelle2, wo die Listbox platziert ist.
  2. Füge eine Listbox hinzu: Klicke auf "Entwicklertools" > "Einfügen" > "Listbox (Formularsteuerelement)" und ziehe sie in die gewünschte Position.
  3. Fülle die Listbox automatisch: Füge folgenden VBA-Code in das Modul deiner Arbeitsmappe ein:

    Private Sub Workbook_Open()
       Worksheets("Tabelle2").ListBox1.ListFillRange = "=Einträge"
    End Sub
  4. Setze die Eigenschaften: Stelle sicher, dass die Listbox in den Eigenschaften auf "Enabled" = True gesetzt ist.
  5. Überprüfe die Sichtbarkeit: Stelle sicher, dass Tabelle3 sichtbar ist oder die Listbox sonst richtig befüllt werden kann.

Häufige Fehler und Lösungen

  • Listbox nicht aktiv: Manchmal ist die Listbox nicht auswählbar, weil sie sich in einer ausgeblendeten oder nicht aktiven Tabelle befindet. Wechsle manuell zu einem anderen Blatt und dann zurück.
  • Fadenkreuz statt Pfeil: Wenn der Cursor als Fadenkreuz erscheint, kann dies auf ein Problem mit der Position der Listbox hinweisen. Versuche, die Listbox an eine andere Stelle zu verschieben.
  • Fehlermeldungen: Wenn Du eine Fehlermeldung wie "Variable nicht definiert" erhältst, überprüfe, ob der Name der Listbox korrekt ist und ob sie sich im richtigen Arbeitsblatt befindet.

Alternative Methoden

  • Direkte Zuweisung: Anstelle von ListFillRange kannst Du die Listbox auch manuell befüllen, indem Du die Werte in einer Schleife hinzufügst:

    Dim i As Integer
    With Worksheets("Tabelle2").ListBox1
       .Clear
       For i = 1 To 10
           .AddItem Worksheets("Tabelle3").Cells(i, 1).Value
       Next i
    End With
  • Verwendung von Bereichsnamen: Wenn Du einen Namen für den Bereich (z.B. "Einträge") definiert hast, stelle sicher, dass dieser korrekt in der Listbox verwendet wird.


Praktische Beispiele

  • Beispiel 1: Du hast die Daten in A1:A10 in Tabelle3 und möchtest sie in die Listbox in Tabelle2 laden. Verwende den obigen Workbook_Open Code.
  • Beispiel 2: Möchtest Du die Auswahl aus der Listbox als Filterkriterium verwenden? Füge diesen Code nach der Listbox-Auswahl hinzu:

    Private Sub ListBox1_Click()
       Worksheets("Tabelle2").Range("A10").AutoFilter Field:=1, Criteria1:="*" & Me.ListBox1.Value & "*"
    End Sub

Tipps für Profis

  • Nutze den Kunstgriff: Wenn Du eine Listbox in eine andere Tabelle einfügst, verwende die Eigenschaft ListFillRange korrekt, um Fehler zu vermeiden.
  • Debugging: Nutze Debug.Print um den Status der Variablen und Objekte während der Ausführung zu überprüfen. So kannst Du leichter herausfinden, wo es hakt.
  • Optimierung: Reduziere die Anzahl der Aufrufe von Excel-Objekten in Schleifen, um die Performance zu verbessern. Fülle die Listbox in einer einzigen Operation, wenn möglich.

FAQ: Häufige Fragen

1. Warum ist die Listbox nicht auswählbar? Wenn die Listbox nicht auswählbar ist, kann es daran liegen, dass sie in einer ausgeblendeten Tabelle ist oder die Eigenschaften nicht korrekt gesetzt sind.

2. Wie kann ich die Listbox nach dem Befüllen aktivieren? Falls die Listbox nach dem Befüllen nicht aktiv ist, versuche, die Listbox zu verschieben oder wechsle manuell zu einem anderen Tabellenblatt und zurück.

3. Was mache ich, wenn ich eine Fehlermeldung bekomme? Überprüfe den Code auf Schreibfehler oder falsche Referenzen, insbesondere in Bezug auf den Namen der Listbox und das Arbeitsblatt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige