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

ComboBox1.RowSource =

Forumthread: ComboBox1.RowSource =

ComboBox1.RowSource =
21.07.2003 16:27:01
EL
Hallo uns guttenTag!
Frage?
Wie kann ich mit ComboBox listen C2:C200 in andere Arbeitsmappe?

Private Sub UserForm_Initialize()
ComboBox1.RowSource = ' C:\Temp\Test.xls.Tabelle1! "c2: c200"
End Sub

MGF
EL
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox1.RowSource =
21.07.2003 17:00:07
Nepumuk
Hallo EL,
RowSource geht nur in der Mappe in der die Userform ist. Ansonsten folgendes:

Option Explicit
Private Sub UserForm_Initialize()
Dim feld As Variant
GetObject "C:\Temp\Test.xls"
feld = Workbooks("Test.xls").Worksheets("Tabelle1").Range("C2:C200")
Workbooks("Test.xls").Close False
ComboBox1.List = feld
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk

Anzeige
AW: ComboBox1.RowSource =
22.07.2003 10:02:19
EL
Hallo Nepumuk,
RowSource geht nur in der Mappe in der die Userform ist.
Das habe ich vermuttet weil ich alles peobiert, Vielen Dank!
Frage ?
In meine Tabelle1 sind nicht alle Zeilen besitzt sondern manche sind leer.
Kann ich nur die Besetzte Zeilen auslisten und dabei
ComboBox1.listIndex richtig funktioniert.
Ich habe folgendes noch:

Private Sub ComboBox1_AfterUpdate()
Dim PR As String
Dim TR As String
PR = Range("B3").Value
TR = Range("B4").Value
Workbooks("Produkt" & PR & ".xls").Sheets(TR).Rows(ComboBox1.ListIndex + 1).Copy _
Workbooks("ECSB.xls").Sheets("ecs").Rows(31)
Unload Me
Call ROHSTOFF
End Sub

MFG
EL

Anzeige
AW: ComboBox1.RowSource =
22.07.2003 10:26:02
Nepumuk
Hallo EL,
dann mach es so:

Option Explicit
Private Sub UserForm_Initialize()
Dim Zeile As Integer
GetObject "C:\Temp\Test.xls"
For Zeile = 2 To 200
If Trim(Workbooks("Test.xls").Worksheets("Tabelle1").Cells(Zeile, 2)) <> "" Then ComboBox1.AddItem Trim(Workbooks("Test.xls").Worksheets("Tabelle1").Cells(Zeile, 2))
Next
Workbooks("Test.xls").Close False
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk

Anzeige
AW: ComboBox1.RowSource =
23.07.2003 08:19:39
EL
Hallo Nepumuk!
Ich habe das deaktiviert.
'Workbooks("Test.xls").Close False
Und habe Folgendes:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sperren Then
Application.DisplayAlerts = False: Application.Quit
End If
End Sub

Bei Programm ende Bekomme ich error meldung:
Microsoft Visual Basic
Can't quit at this time
Ich vermutte das wenn Combobox1 listet und bei Application.Quit liegt der grund.
MFG
EL

Anzeige
AW: ComboBox1.RowSource =
23.07.2003 09:28:20
Nepumuk
Hallo EL,
das liegt daran, dass die Datei Test.xls nicht als Excelmappe sondern als Objekt geladen wurde.
Gruß
Nepumuk

AW: ComboBox1.RowSource =
23.07.2003 09:38:13
EL
Hallo Nepumuk!
Programm wird normall geschlossen, nun nun am Bildschirm bleibt diese Meldung .
Mann muß OK klicken mehr nicht.
Gibt da für ein Lössung?
Es ist nicht so Tragisch !
MFG
EL

Anzeige
AW: ComboBox1.RowSource =
23.07.2003 09:58:53
Nepumuk
Hallo EL,
kann ich nicht sagen, da ich den Rest des Programms nicht kenne.
Gruß
Nepumuk

Danke!
22.07.2003 15:25:49
El
Danke!
EL

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

ComboBox1.RowSource: So verwendest du die ComboBox in Excel VBA


Schritt-für-Schritt-Anleitung

Um die ComboBox1.RowSource in einem Excel VBA UserForm richtig zu nutzen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein UserForm hinzu: Klicke mit der rechten Maustaste im Projekt-Explorer auf dein Projekt und wähle Einfügen > UserForm.

  3. Füge eine ComboBox hinzu: Wähle die ComboBox aus der Toolbox und ziehe sie auf das UserForm.

  4. Setze die RowSource: Gehe in das Code-Fenster des UserForms und füge folgenden Code ein:

    Private Sub UserForm_Initialize()
       ComboBox1.RowSource = "C:\Temp\Test.xls!Tabelle1!C2:C200"
    End Sub
  5. Starte das UserForm: Führe das UserForm aus, um die ComboBox mit den Werten aus dem angegebenen Bereich zu füllen.


Häufige Fehler und Lösungen

  • Fehler: "Kann die Datei nicht finden"
    Lösung: Überprüfe den Pfad und stelle sicher, dass die Datei existiert und korrekt benannt ist.

  • Fehler: "RowSource kann nur innerhalb der Mappe gesetzt werden"
    Lösung: Du kannst die RowSource nicht auf ein anderes Workbook setzen. Verwende stattdessen den Code, um die Werte manuell zu laden.

  • Fehler: Leere Werte in der ComboBox
    Lösung: Stelle sicher, dass du nur die gefüllten Zellen hinzufügst. Nutze eine Schleife, um leere Zellen zu ignorieren.


Alternative Methoden

Du kannst die RowSource auch dynamisch setzen, indem du die Werte manuell in die ComboBox hinzufügst. Hier ist ein Beispiel:

Private Sub UserForm_Initialize()
    Dim Zeile As Integer
    For Zeile = 2 To 200
        If Trim(Workbooks("Test.xls").Worksheets("Tabelle1").Cells(Zeile, 2).Value) <> "" Then
            ComboBox1.AddItem Trim(Workbooks("Test.xls").Worksheets("Tabelle1").Cells(Zeile, 2).Value)
        End If
    Next Zeile
End Sub

Diese Methode ermöglicht es dir, nur die nicht-leeren Zellen hinzuzufügen.


Praktische Beispiele

  1. Daten aus einer externen Datei laden: Verwende den folgenden Code, um Werte aus einer externen Excel-Datei in die ComboBox zu laden:

    Private Sub UserForm_Initialize()
       Dim feld As Variant
       GetObject "C:\Temp\Test.xls"
       feld = Workbooks("Test.xls").Worksheets("Tabelle1").Range("C2:C200").Value
       ComboBox1.List = feld
       Workbooks("Test.xls").Close False
    End Sub
  2. Verwendung von ComboBox1.ListIndex: Um den ausgewählten Wert zu verwenden, kannst du diesen Code im AfterUpdate-Ereignis der ComboBox hinzufügen:

    Private Sub ComboBox1_AfterUpdate()
       MsgBox "Der ausgewählte Wert ist: " & ComboBox1.Value
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Damit wird sichergestellt, dass alle Variablen deklariert sind, was dir hilft, Fehler frühzeitig zu erkennen.
  • Verwalte die Sichtbarkeit der ComboBox: Du kannst die ComboBox deaktivieren oder die Sichtbarkeit basierend auf bestimmten Bedingungen steuern.
  • Nutze die ListIndex-Eigenschaft: Damit kannst du den Index des ausgewählten Wertes abrufen und entsprechend reagieren.

FAQ: Häufige Fragen

1. Wie setze ich die RowSource für eine ComboBox in einer UserForm?
Du kannst die RowSource in der UserForm_Initialize-Subroutine setzen. Achte darauf, dass die Quelle im selben Workbook liegt.

2. Was mache ich, wenn ich nur nicht-leere Zellen in die ComboBox einfügen möchte?
Verwende eine Schleife, um jede Zelle zu überprüfen und nur die nicht-leeren Zellen hinzuzufügen. Siehe das Beispiel im Abschnitt "Alternative Methoden".

3. Wie kann ich die ComboBox mit Werten aus mehreren Zellen füllen?
Du kannst die AddItem-Methode verwenden, um Werte aus verschiedenen Zellen hinzuzufügen. Beachte, dass du die Zellen zuerst durchlaufen musst.

4. Gibt es einen Unterschied zwischen RowSource und List?
Ja, RowSource bezieht sich auf die Datenquelle in einem anderen Arbeitsblatt, während List die Werte direkt in die ComboBox lädt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige