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

ComboBox mit Daten aus anderer Datei füllen

Forumthread: ComboBox mit Daten aus anderer Datei füllen

ComboBox mit Daten aus anderer Datei füllen
siegfried
Hallo zusammen,
ich habe in einer Userform eine ComboBox installiert und greife bei der RowSource Eigenschaft auf eine Liste (PLZ der BRD) zu, die sich in dem entsprechenden Arbeitsblatt der aktiven Datei befindet.
Jetzt will ich diese Liste in eine separate Datei packen und dennoch die ComboBox mit den Daten aus der separaten Datei füllen.
Geht das? Und Wie?
Gruß Siegfried
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ComboBox mit Daten aus anderer Datei füllen
24.05.2010 16:14:57
Beverly
Hi Siegfried,
versuche es mal so:
    ComboBox1.RowSource = "[Mappe2.xls]Tabelle1!A1:A10"


AW: ComboBox mit Daten aus anderer Datei füllen
24.05.2010 18:19:35
fcs
Hallo Siegfried,
alternativ zu Karin's Vorschlag, der erforderdert, dass die PLZ-Datei während der Arbeit mit dem Userform geöffnet ist, kannst du die benötigten PLZ-auch in ein Datenarray laden mit dem die Combobox mit Auswahldaten gefüttert wird. Dazu wird die Die PLZ-Datei nur kurzzeitig geöffnet, wenn im Datenarray noch keine Daten vorhanden sind.
Nachfolgend ein entsprechendes Beispiel zur Anzeige eines Userforms. Für die RowSource der Combobox darf dann nichts eingetragen sein.
Gruß
Franz
Option Explicit
Public arrPLZ
Sub UF_Anzeigen1()
Dim sDateiPLZ As String, wbPLZ As Workbook
If Not IsArray(arrPLZ) Then
sDateiPLZ = "C:\Users\Public\Test\PLZ_DE.xls"
Application.ScreenUpdating = False
Application.StatusBar = "PLZ-Datei wird geladen"
Set wbPLZ = Application.Workbooks.Open(Filename:=sDateiPLZ, ReadOnly:=True)
With wbPLZ.Worksheets(1)
arrPLZ = .Range(.Cells(2, 1), .Cells.SpecialCells(xlCellTypeLastCell))
End With
wbPLZ.Close savechanges:=False
Application.ScreenUpdating = True
Application.StatusBar = False
End If
UserForm2.ComboBox1.List = arrPLZ
UserForm2.Show
End Sub

Anzeige
AW: ComboBox mit Daten aus anderer Datei füllen
24.05.2010 18:55:20
siegfried
Danke Fcs,
Dein Code funktioniert so, wie ich es wollte.
Im übrigen, der Vorschlag von Karin führte zu einer Fehlermeldung "ungültiger Eigenschaftswert"
Gruß Siegfried
AW: ComboBox mit Daten aus anderer Datei füllen
25.05.2010 00:53:10
fcs
Hallo Siegfried,
der Vorschlag von Karin funktioniert grundsätzlich, kann aber sein, dass zusätzliche Hochkommata erforderlich sind, wenn im Dateinamen und/oder Tabellennamen Leerzeichen oder bestimmte Sonderzeichen enthalten sind.
Gruß
Franz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ComboBox mit Daten aus einer anderen Datei füllen


Schritt-für-Schritt-Anleitung

Um eine ComboBox in einer UserForm mit Daten aus einer anderen Excel-Datei zu füllen, kannst du die RowSource-Eigenschaft oder ein VBA-Skript verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
  2. Füge eine UserForm hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "UserForm" auswählst.
  3. Platziere eine ComboBox auf der UserForm.
  4. Verwende den folgenden VBA-Code, um die ComboBox mit Daten aus einer anderen Datei zu füllen:
Option Explicit
Public arrPLZ
Sub UF_Anzeigen1()
    Dim sDateiPLZ As String, wbPLZ As Workbook
    If Not IsArray(arrPLZ) Then
        sDateiPLZ = "C:\Users\Public\Test\PLZ_DE.xls"
        Application.ScreenUpdating = False
        Application.StatusBar = "PLZ-Datei wird geladen"
        Set wbPLZ = Application.Workbooks.Open(Filename:=sDateiPLZ, ReadOnly:=True)
        With wbPLZ.Worksheets(1)
            arrPLZ = .Range(.Cells(2, 1), .Cells.SpecialCells(xlCellTypeLastCell))
        End With
        wbPLZ.Close savechanges:=False
        Application.ScreenUpdating = True
        Application.StatusBar = False
    End If
    UserForm2.ComboBox1.List = arrPLZ
    UserForm2.Show
End Sub
  1. Ändere den Pfad zur PLZ-Datei in der Variable sDateiPLZ, um sicherzustellen, dass er zu deiner Datei passt.
  2. Starte die UserForm, um die ComboBox mit den Daten aus der anderen Datei zu füllen.

Häufige Fehler und Lösungen

  • Ungültiger Eigenschaftswert: Dieser Fehler tritt auf, wenn die RowSource falsch gesetzt ist. Stelle sicher, dass der Dateiname und der Tabellenname korrekt sind und keine Leerzeichen oder Sonderzeichen enthalten.

  • Datei nicht gefunden: Überprüfe den Pfad zur Datei. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.

  • ComboBox bleibt leer: Vergewissere dich, dass die Daten in der angegebenen Range vorhanden sind und dass das Array arrPLZ korrekt gefüllt wird.


Alternative Methoden

Eine alternative Methode, um eine ComboBox in Excel zu füllen, besteht darin, die Daten direkt in die RowSource-Eigenschaft zu setzen, vorausgesetzt, die andere Datei ist geöffnet:

ComboBox1.RowSource = "[Mappe2.xls]Tabelle1!A1:A10"

Diese Methode erfordert, dass die Datei, auf die du zugreifen möchtest, bereits geöffnet ist.


Praktische Beispiele

Angenommen, du möchtest eine Dropdown-Liste mit Postleitzahlen in deiner UserForm erstellen:

  1. Öffne die Datei, die die PLZ enthält.
  2. Verwende den obigen VBA-Code, um die PLZ in die ComboBox zu laden.
  3. Teste die UserForm, um sicherzustellen, dass die PLZ korrekt angezeigt werden.

Tipps für Profis

  • Verwende Fehlerbehandlung im VBA, um sicherzustellen, dass dein Code robust ist und bei Problemen nicht abstürzt. Beispiel:
On Error Resume Next
' Dein Code hier
On Error GoTo 0
  • Optimiere die Benutzeroberfläche der UserForm, um die Benutzerfreundlichkeit zu erhöhen. Füge z.B. Labels hinzu, die erklären, was der Benutzer auswählen soll.

FAQ: Häufige Fragen

1. Kann ich die ComboBox auch mit Daten aus einer Excel-Tabelle in einer anderen Arbeitsmappe füllen? Ja, das ist möglich, indem du die RowSource-Eigenschaft oder VBA verwendest, um die Daten zu laden.

2. Was passiert, wenn die Quelldatei geschlossen ist? Wenn die Quelldatei geschlossen ist, kannst du die ComboBox nicht über die RowSource füllen. Du musst die Datei erst öffnen, um die Daten zu laden, oder ein Array verwenden, wie im Beispiel oben.

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