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

Forumthread: Combobox Listfillrange andere Tabelle

Combobox Listfillrange andere Tabelle
29.03.2020 21:29:43
Markus
Hallo Zusammen,
Um eine Combobox dynamisch befüllen zu können möchte ich ihr die List Fill Range mittels vba zuweisen und einen Rows.Count Befehl einbauen.
Das Problem ist jedoch, dass sich die Daten für die ListfillRange auf einem anderen Tabellenblatt befinden. Jegliche Versuche bringen mich nicht weiter. wks11 wird in meiner Codezeile einfach ignoriert und die entsprechenden Zellen von wks1 werden genommen.
Private Sub ComboBox1_Change()
Dim wks1 As Worksheet, wks11 As Worksheet
Set wks1 = Worksheets("Eingabe")
Set wks11 = Worksheets("Umrechn. PDS-EQU")
wks1.OLEObjects("Combobox5").ListFillRange = wks11.Range(wks11.Cells(7,4), wks11.Cells(Rows. _
Count,4).End(xlUp).Rows).Address
End Sub
Kann jemand einen Fehler erkennen und mir weiterhelfen?
Danke schon mal,
Markus
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox Listfillrange andere Tabelle
29.03.2020 23:11:31
JoWE
Hallo Markus,
mal ohne groß zu testen:
ComboBox1.ListFillRange = wks11.Name & "!" & wks11.Cells(7, 4).Address _
& ":" & wks11.Cells(Rows.Count, 4).End(xlUp).Address

Gruß
Jochen
AW: Combobox Listfillrange andere Tabelle
29.03.2020 23:38:15
Markus
Hallo Jochen,
Danke, du warst mir eine große Hilfe!
Ich musste lediglich jeweils vor und nach wks11.Name noch ein "'" hinzufügen und jetzt funktioniert es tadellos!
Gruß,
Markus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Combobox ListFillRange aus einer anderen Tabelle nutzen


Schritt-für-Schritt-Anleitung

Um eine Combobox mit einer dynamischen ListFillRange aus einer anderen Tabelle zu befüllen, kannst Du folgenden VBA-Code verwenden. Dieser Code setzt voraus, dass Du Excel mit Makros verwendest.

  1. Öffne Excel und wechsle in den VBA-Editor (Alt + F11).
  2. Füge in das entsprechende UserForm oder die Arbeitsmappe den folgenden Code ein:
Private Sub ComboBox1_Change()
    Dim wks1 As Worksheet, wks11 As Worksheet
    Set wks1 = Worksheets("Eingabe")
    Set wks11 = Worksheets("Umrechn. PDS-EQU")

    wks1.OLEObjects("ComboBox5").ListFillRange = "'" & wks11.Name & "'!" & wks11.Range(wks11.Cells(7, 4), wks11.Cells(Rows.Count, 4).End(xlUp)).Address
End Sub
  1. Stelle sicher, dass die Namen der Arbeitsblätter ("Eingabe" und "Umrechn. PDS-EQU") korrekt sind.
  2. Teste die Combobox, indem Du sie auswählst. Die Daten sollten nun aus dem anderen Tabellenblatt geladen werden.

Häufige Fehler und Lösungen

  • Fehler: "Das angegebene Arbeitsblatt kann nicht gefunden werden."

    • Lösung: Überprüfe den Namen des Arbeitsblatts in der Zeile Set wks11 = Worksheets("Umrechn. PDS-EQU"). Achte auf Rechtschreibung und Leerzeichen.
  • Fehler: Die Combobox zeigt keine Werte an.

    • Lösung: Stelle sicher, dass die Liste, auf die Du verweist, tatsächlich Daten enthält. Überprüfe den Bereich Range(wks11.Cells(7, 4), wks11.Cells(Rows.Count, 4).End(xlUp)).

Alternative Methoden

Es gibt verschiedene Möglichkeiten, um eine ListFillRange in einer Combobox zu füllen:

  1. Über eine Tabelle: Du kannst eine Excel-Tabelle erstellen und den Bereich der Tabelle als ListFillRange in der Combobox verwenden.

    wks1.OLEObjects("ComboBox5").ListFillRange = "Tabelle1[Spaltenname]"
  2. Manuelles Befüllen: Eine andere Möglichkeit ist, die Werte manuell in die Combobox einzufügen:

    wks1.OLEObjects("ComboBox5").List = wks11.Range("D7:D100").Value

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die ListFillRange nutzen kannst:

  • Dynamische Daten: Wenn Du eine Liste von Produkten hast, die sich regelmäßig ändert, kannst Du die Combobox so einstellen, dass sie immer die neuesten Daten anzeigt.

  • Kategorisierte Listen: Du kannst Daten aus verschiedenen Tabellenblättern in einer einzigen Combobox zusammenführen, indem Du die Daten zuerst in Arrays speicherst und dann in die Combobox überträgst.

Dim myList As Variant
myList = Array("Item1", "Item2", "Item3")
wks1.OLEObjects("ComboBox5").List = myList

Tipps für Profis

  • Verwende Named Ranges: Wenn Du häufig auf denselben Bereich zugreifen musst, erstelle einen benannten Bereich, um die Wartung zu erleichtern.

  • Ereignisgesteuertes Befüllen: Du kannst die Combobox auch so einstellen, dass sie sich automatisch aktualisiert, wenn das Arbeitsblatt geändert wird, indem Du die Worksheet_Change-Ereignisprozedur nutzt.


FAQ: Häufige Fragen

1. Wie kann ich die Combobox in Excel 365 verwenden?
Die Methode bleibt gleich, aber achte darauf, dass Du die richtigen Referenzen in den VBA-Editor einfügst.

2. Kann ich eine ListFillRange für eine ListBox verwenden?
Ja, die Vorgehensweise ist ähnlich, jedoch verwendest Du die List-Eigenschaft der ListBox, um die Werte zuzuweisen.

3. Was passiert, wenn der Bereich leer ist?
In diesem Fall wird die Combobox leer bleiben. Stelle sicher, dass immer Daten vorhanden sind, oder implementiere eine Fehlerbehandlung, um leere Werte zu vermeiden.

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