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
Private Sub UserForm_Initialize()
ComboBox1.RowSource = ' C:\Temp\Test.xls.Tabelle1! "c2: c200"
End Sub
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
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
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
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sperren Then
Application.DisplayAlerts = False: Application.Quit
End If
End Sub
Um die ComboBox1.RowSource in einem Excel VBA UserForm richtig zu nutzen, folge diesen Schritten:
Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
Füge ein UserForm hinzu: Klicke mit der rechten Maustaste im Projekt-Explorer auf dein Projekt und wähle Einfügen > UserForm.
Füge eine ComboBox hinzu: Wähle die ComboBox aus der Toolbox und ziehe sie auf das UserForm.
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
Starte das UserForm: Führe das UserForm aus, um die ComboBox mit den Werten aus dem angegebenen Bereich zu füllen.
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.
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.
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
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
Option Explicit: Damit wird sichergestellt, dass alle Variablen deklariert sind, was dir hilft, Fehler frühzeitig zu erkennen.ListIndex-Eigenschaft: Damit kannst du den Index des ausgewählten Wertes abrufen und entsprechend reagieren.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.