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

Forumthread: Listbox füllen mit daten aus nicht aktiver Tabelle

Listbox füllen mit daten aus nicht aktiver Tabelle
01.06.2016 08:57:09
baschti007
Halli Hallo
Ich würde gerne hier mit meine Listbox in der UF füllen nur befinde ich mich nicht auf dem Tabellenblatt wo die Daten liegen .
Private Sub UserForm_Initialize()
With Worksheets("Tabelle1")
.Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)) = ListBox1.List.Value
.Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)) = ComboBox1.List.Value
End With
End Sub
Wie kann ich mich beim füllen der Listbox auf z.B Tabelle1 beziehen?
Gruß Basti

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox füllen mit daten aus nicht aktiver Tabelle
01.06.2016 09:07:46
Fennek
Hallo Basti,
in der "with" - Klammer müssen auch alle "cells" mit einem Punkt versehen werden, also

.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) = ListBox1.List.Value
.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) = ComboBox1.List.Value
mfg

Anzeige
-
01.06.2016 09:36:18
baschti007
Hallo Fennek
Leider geht es auch so nicht =(
Laufzeitfehler 424
Objekt erforderlich
Private Sub UserForm_Initialize()
With Worksheets("Tabelle1")
.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) = ListBox1.List.Value
.Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)) = ComboBox1.List.Value
End With
End Sub

Anzeige
AW: Listbox füllen mit daten aus nicht aktiver Tabelle
01.06.2016 09:10:59
hary
Moin
Du musst innerhalb der with Anweisung vor Cells auch einen Punkt setzten.
Test mal so. Leerzellen werden auch mitgenommen.
With Worksheets("Tabelle1")
ListBox1.RowSource = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Address
End With

gruss hary

Anzeige
-
01.06.2016 09:38:48
baschti007
Es Funktioniert,
Aber nur wenn ich mich auf Tabelleblatt1 befinde nimmt er die Werte von dort aber wenn ich auf 2 bin dann greift er nicht auf tabellenblatt1 zu.?
Gruß Basti

Listbox füllen mit daten aus nicht aktiver Tabelle
01.06.2016 10:07:27
Rudi
Hallo,
Private Sub UserForm_Initialize()
With Worksheets("Tabelle1")
ListBox1.List = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
ComboBox1.List = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
End With
End Sub
Gruß
Rudi

Anzeige
Danke =)
01.06.2016 11:15:33
baschti007
Super Danke =)

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Listbox mit Daten aus einer nicht aktiven Tabelle füllen


Schritt-für-Schritt-Anleitung

Um eine Listbox in einer UserForm mit Daten aus einer nicht aktiven Tabelle zu füllen, kannst du folgenden VBA-Code verwenden:

Private Sub UserForm_Initialize()
    With Worksheets("Tabelle1")
        ListBox1.List = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
        ComboBox1.List = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
    End With
End Sub
  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge eine UserForm hinzu und platziere eine Listbox (ListBox1) und eine ComboBox (ComboBox1) auf der Form.
  3. Kopiere den obigen Code in das Code-Fenster der UserForm.
  4. Stelle sicher, dass der Name des Arbeitsblattes ("Tabelle1") korrekt angegeben ist.
  5. Starte die UserForm, um die Listbox zu füllen.

Häufige Fehler und Lösungen

Laufzeitfehler 424: Objekt erforderlich

Dieser Fehler tritt auf, wenn die Referenz auf die Zellen nicht korrekt ist. Vergewissere dich, dass du im With-Block den Punkt vor Cells und Rows setzt:

.Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Value

Daten werden nur angezeigt, wenn die UserForm auf dem gleichen Blatt geöffnet wird

Um sicherzustellen, dass die Daten auch angezeigt werden, wenn sich die UserForm auf einem anderen Tabellenblatt befindet, verwende den oben gezeigten Code. Er greift direkt auf die Daten in "Tabelle1" zu, unabhängig davon, welches Blatt aktiv ist.


Alternative Methoden

Eine andere Methode, um eine Listbox in Excel zu füllen, besteht darin, die RowSource-Eigenschaft zu verwenden:

Private Sub UserForm_Initialize()
    With Worksheets("Tabelle1")
        ListBox1.RowSource = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Address
    End With
End Sub

Diese Methode ist besonders nützlich, wenn du die Listbox dynamisch mit einem Bereich füllen möchtest.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele, wie du die Listbox füllen kannst:

  1. Füllen mit einem spezifischen Bereich: Wenn du nur die ersten 10 Zellen füllen möchtest:

    ListBox1.List = .Range(.Cells(1, 1), .Cells(10, 1)).Value
  2. Füllen aus mehreren Spalten: Wenn du Daten aus mehreren Spalten in eine Listbox füllen möchtest:

    Dim i As Long
    For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
       ListBox1.AddItem .Cells(i, 1).Value
       ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(i, 2).Value
    Next i

Tipps für Profis

  • Verwende Option Explicit: Um sicherzustellen, dass alle Variablen deklariert sind, füge am Anfang deines Moduls Option Explicit hinzu.
  • Fehlerbehandlung einfügen: Verwende On Error Resume Next oder On Error GoTo Fehlerbehandlung, um potenzielle Fehler abzufangen und zu behandeln.
  • Datenfilterung: Wenn du nur bestimmte Daten in die Listbox füllen möchtest, erwäge, die Daten vorher zu filtern.

FAQ: Häufige Fragen

1. Wie kann ich die Listbox mit Daten aus mehreren Tabellen füllen? Du kannst die Daten von mehreren Tabellen zusammenführen und in die Listbox einfügen, indem du die Werte manuell sammelst und hinzufügst.

2. Was, wenn ich die Listbox nach einem bestimmten Kriterium filtern möchte? Du kannst eine Schleife verwenden, um nur die gewünschten Elemente in die Listbox hinzuzufügen, basierend auf deinem Filterkriterium.

3. Wie verhindere ich, dass leere Zellen in die Listbox geladen werden? Verwende eine If-Bedingung innerhalb deiner Schleife, um sicherzustellen, dass nur nicht-leere Zellen in die Listbox eingefügt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige