Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox ActiveX Element mit Daten befüllen

Listbox ActiveX Element mit Daten befüllen
21.09.2015 21:10:09
Manuel
Guten Abend nochmal,
kann mir nochmal einer unter die Arme greifen und mir bei meinem ActiveX Problem?
Ich habe zwei Listboxen in denen ich jeweils für ein Projekt Vor und Nachteile darstellen möchte. Die Daten beziehe ich aus zwei anderen Tabellenblätter. Jedoch erhalte ich ständig nur eine Fehlermeldung angezeigt.
https://www.herber.de/bbs/user/100308.xlsm
Wäre super wenn einer eine Lösung hat!
Grüße Manuel

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox ActiveX Element mit Daten befüllen
22.09.2015 08:43:33
Beverly
Hi Manuel,
dein Tabellenblatt ist ausgeblendet, da kannst du es nicht aktivieren. Beziehe dich mit einer With-Anweisung auf das betreffende Blatt:
With Sheets("Basis")
BLetzte = IIf(IsEmpty(.Range("B65536")), .Range("B65536").End(xlUp).Row, 65536)
For iRow = 2 To BLetzte
If .Cells(iRow, 2)  "" Then
ReDim Preserve arr(0 To 6, 0 To iRowU)
arr(0, iRowU) = .Cells(iRow, 1)
arr(1, iRowU) = .Cells(iRow, 2)
arr(2, iRowU) = .Cells(iRow, 3)
arr(3, iRowU) = .Cells(iRow, 4)
'arr(4, iRowU) = Cells(iRow, 10)
'arr(5, iRowU) = Cells(iRow, 12)
'arr(6, iRowU) = Cells(iRow, 14)
iRowU = iRowU + 1
End If
Next iRow
End With


Anzeige
AW: Listbox ActiveX Element mit Daten befüllen
22.09.2015 14:05:10
Manuel
Hallo Beverly,
vielen Dank für deine Antwort! Ich erhalte den Fehler das die Variable nicht definiert ist...irgendwie bin ich auch gerade zu blöd ihn zu beheben. Kannst du mir nochmal helfen?
In einem anderem Code den ich nutze um die Listbox zu füllen, klappt die Methode mit "With" nicht.
Private Sub Listbox_füllen()
Dim lngZeile As Long
ListBox1.Clear
With Sheets("Basis")
For lngZeile = 5 To IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row,  _
Rows.Count)
ListBox1.AddItem Cells(lngZeile, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(lngZeile, 2)
ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(lngZeile, 3)
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(lngZeile, 4)
' ListBox1.List(ListBox1.ListCount - 1, 4) = Cells(lngZeile, 5)
'ListBox1.List(ListBox1.ListCount - 1, 5) = Cells(lngZeile, 6)
'ListBox1.List(ListBox1.ListCount - 1, 6) = Cells(lngZeile, 7)
Next lngZeile
End With
End Sub
Auch meine normale Textbox in der Tabelle kann ich nicht mit "With" füllen...
Wäre super wenn du mir nochmal helfen könntest :)
Danke und grüße Manuel

Anzeige
AW: Listbox ActiveX Element mit Daten befüllen
22.09.2015 15:56:50
Beverly
Hi Manuel,
keine Ahnung, weshalb du verwendete Variablen nun nicht mehr deklarierst - in deinem ursprünglichen Code waren sie doch deklariert und ich habe nichts anderes verwendet.
Schau dir doch meinen Code mal genau an - vergleiche dort insbesonder den Bezug zu den Zellen mit deinem Code.


Anzeige
AW: Listbox ActiveX Element mit Daten befüllen
23.09.2015 17:32:52
Manuel
Hallo Beverly,
ich hab das ganze jetzt hinbekommen! Vielen Dank für deine Hilfe!! :).
Eine andere Frage hat sich jedoch aufgetan, ist es möglich bei Klick auf einen Eintrag im Listenfeld eine Userform auszuführen, in der die Daten geladen werden, die in dem entsprechenden Listenfeld sind?
Also jeweils nur die Datenzeile auf die geklickt wurde.
Wäre super wenn du oder jemand anders bei der Sache nochmal helfen könntest!
Vielen Dank und beste Grüße
Manuel

Anzeige
AW: Listbox ActiveX Element mit Daten befüllen
23.09.2015 17:58:32
Beverly
Hi Manuel,
sicher ist das möglich, die Daten des aktivierten ListBox-Eintrags in Steuerelemente eines anderen UserForms zu übertragen - benutze das Click-Ereignis der ListBox.


AW: Listbox ActiveX Element mit Daten befüllen
23.09.2015 18:17:01
Manuel
Hi Beverly
Hast du vielleicht einen Beispielmakro oder könntest du das in einer Mappe hochladen? Ich weis gerade nicht so recht wie ich das bewerkstelligen kann.
Grüße

Anzeige
AW: Listbox ActiveX Element mit Daten befüllen
23.09.2015 18:24:26
Manuel
Habe es hinbekommen mit diesem Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
UserForm5.TextBox1 = ListBox1.List(.ListIndex, 0)
End With
UserForm5.Show
End Sub
Danke!
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ActiveX Listbox in Excel mit Daten befüllen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Userform: Öffne den VBA-Editor (Alt + F11) und füge eine Userform hinzu. Ziehe eine ActiveX Listbox auf die Userform.

  2. Datenquelle festlegen: Stelle sicher, dass du die Daten, die du in die Listbox füllen möchtest, in einem Tabellenblatt hast.

  3. VBA-Code schreiben: Füge den folgenden Code in das Codefenster der Userform ein, um die ActiveX Listbox mit Daten zu füllen:

    Private Sub UserForm_Initialize()
        Dim lngZeile As Long
        ListBox1.Clear
        With Sheets("Basis")
            For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
                ListBox1.AddItem .Cells(lngZeile, 1) ' Füge den ersten Wert hinzu
                ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(lngZeile, 2) ' Füge den zweiten Wert hinzu
            Next lngZeile
        End With
    End Sub
  4. Fehlermeldungen beachten: Achte darauf, dass du die Variablen korrekt definierst und dass das Arbeitsblatt nicht ausgeblendet ist.

  5. Daten bei Klick anzeigen: Um bei einem Doppelklick auf einen Listeneintrag die Daten in ein Textfeld zu übertragen, verwende den folgenden Code:

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        With ListBox1
            UserForm5.TextBox1 = ListBox1.List(.ListIndex, 0)
        End With
        UserForm5.Show
    End Sub

Häufige Fehler und Lösungen

  • Fehlermeldung: Variable nicht definiert: Überprüfe, ob alle Variablen im Code deklariert sind. Füge eventuell Dim-Anweisungen hinzu, um sicherzustellen, dass alle Variablen korrekt definiert sind.

  • Listbox bleibt leer: Stelle sicher, dass der Code im UserForm_Initialize-Ereignis ausgeführt wird. Wenn das Arbeitsblatt ausgeblendet ist, wird die Listbox nicht gefüllt.

  • Daten nicht angezeigt: Überprüfe die Range-Angaben und stelle sicher, dass die Daten in den richtigen Zellen stehen.


Alternative Methoden

  • Verwendung von ComboBox: Statt einer ActiveX Listbox kannst du auch eine ComboBox verwenden, die ähnliche Funktionen bietet, aber mehr Flexibilität bei der Benutzerinteraktion bietet.

  • Datenbindung: Eine andere Möglichkeit ist die Datenbindung, bei der du die Listbox an eine Datenquelle bindest, um die Verwaltung der Daten zu vereinfachen.


Praktische Beispiele

  1. Projekt Vor- und Nachteile: Erstelle zwei ActiveX Listboxen, eine für die Vorteile und eine für die Nachteile eines Projekts, und fülle sie mit Daten aus zwei unterschiedlichen Tabellenblättern.

  2. Daten filtern: Implementiere einen Filter, der es dem Benutzer ermöglicht, nur relevante Daten in der Listbox anzuzeigen, basierend auf bestimmten Kriterien.


Tipps für Profis

  • Verwende das With-Statement: Nutze das With-Statement, um den Code übersichtlicher zu gestalten und die Performance zu verbessern.

  • Fehlerbehandlung integrieren: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme zu identifizieren und zu beheben.

  • UserForm anpassen: Gestalte die UserForm benutzerfreundlich, indem du Steuerelemente wie Schaltflächen, Textfelder und Labels hinzufügst, die die Interaktion erleichtern.


FAQ: Häufige Fragen

1. Wie kann ich die Listbox mit einer externen Datenquelle füllen?
Du kannst die Daten aus einer externen Datenquelle importieren, indem du die entsprechenden Verbindungsparameter in deinen VBA-Code einfügst.

2. Ist es möglich, mehrere Spalten in einer Listbox anzuzeigen?
Ja, du kannst mehrere Spalten in einer ActiveX Listbox anzeigen, indem du die List-Eigenschaft entsprechend anpasst und mehrere Werte hinzufügst.

3. Wie kann ich den Inhalt der Listbox nach einem bestimmten Kriterium filtern?
Du kannst Schleifen und If-Anweisungen verwenden, um die Listbox dynamisch zu filtern, basierend auf Benutzereingaben oder bestimmten Bedingungen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige