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

Forumthread: Combobox Rowsource

Combobox Rowsource
ing.grohn
Hallo Forum,
ich steh aufm Schlauch,
ich möchte eine Combobox mit Daten füllen. Bei den Eigenschaften.Rowsource würde ich Personal!a3:b11 eintragen. Beim DropButtonClick Ereignis habe ich folgendes versucht
Private Sub ComboBox18_DropButtonClick()
Zeile = Sheets("Personal").UsedRange.Rows.Count
ComboBox18.RowSource = Sheets("Personal").Range("B2:F" & Zeile)
End Sub

Ich erhalte die Meldung "Datentypen unverträglich!"
Was mache ich falsch? k.A.
Vielen Dank
Mit freundlichen Grüßen
Albrecht
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Combobox Rowsource
08.02.2011 21:45:12
Josef

Hallo Alrecht,
.RowSource erwartet eine String, keinen Range!
Private Sub ComboBox18_DropButtonClick()
  With Sheets("Personal")
    Zeile = .UsedRange.Rows.Count
    ComboBox18.RowSource = "'" & .Name & "'!B2:F" & Zeile
  End With
End Sub


Gruß Sepp

Anzeige
AW: Combobox Rowsource
08.02.2011 22:09:20
ing.grohn
Hallo Sepp,
hatte zwar ne lange Leitung (mit Name!!?, warum kann das auch nicht name heißen) aber,
klappt natürlich vorzüglich!
Vielen Dank und einen schönen Restabend
Mit freundlichen Grüßen
Albrecht
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Combobox Rowsource in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Combobox in Excel VBA mit einer Datenquelle zu füllen, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).

  2. Gehe zu deinem UserForm und wähle die Combobox aus, die du füllen möchtest.

  3. Füge im Code-Bereich des UserForms den folgenden VBA-Code ein:

    Private Sub ComboBox18_DropButtonClick()
       Dim Zeile As Long
       Zeile = Sheets("Personal").UsedRange.Rows.Count
       ComboBox18.RowSource = "'" & Sheets("Personal").Name & "'!B2:F" & Zeile
    End Sub
  4. Speichere die Änderungen und teste die Combobox, indem du auf den Dropdown-Pfeil klickst. Die Daten aus dem angegebenen Bereich sollten jetzt angezeigt werden.


Häufige Fehler und Lösungen

  • Fehler: "Datentypen unverträglich!"

    • Lösung: Stelle sicher, dass du den RowSource-Wert als String angibst und nicht als Range. Verwende Anführungszeichen um den Namen des Sheets und den Bereich.
  • Fehler: Leere Combobox

    • Lösung: Überprüfe, ob der angegebene Bereich tatsächlich Daten enthält. Achte darauf, dass der Bereich korrekt definiert ist (z.B. B2:F).

Alternative Methoden

Falls du eine dynamische Datenquelle für deine Combobox benötigst, kannst du auch die .AddItem-Methode verwenden, um die Elemente manuell hinzuzufügen:

Private Sub UserForm_Initialize()
    Dim Zelle As Range
    For Each Zelle In Sheets("Personal").Range("B2:B11")
        ComboBox18.AddItem Zelle.Value
    Next Zelle
End Sub

Diese Methode ist besonders nützlich, wenn du nur bestimmte Werte aus einer großen Datenmenge anzeigen möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du die RowSource für eine Combobox in verschiedenen Szenarien verwenden kannst:

  1. Füllen aus einer Tabelle:

    ComboBox1.RowSource = "'Tabelle1'!A1:A10"
  2. Füllen mit dynamischen Daten:

    Private Sub ComboBox1_DropButtonClick()
       ComboBox1.RowSource = "'Tabelle1'!" & Range("A1").CurrentRegion.Address
    End Sub

Diese Beispiele zeigen, wie flexibel die Verwendung der RowSource in Excel VBA sein kann.


Tipps für Profis

  • Nutze die RowSource-Eigenschaft, um die Datenquelle direkt mit einem Bereich aus einem Arbeitsblatt zu verknüpfen, um die Wartung zu erleichtern.
  • Teste immer den Quellbereich auf leere Zellen, um sicherzustellen, dass deine Combobox keine unerwarteten Ergebnisse zeigt.
  • Wenn du mehrere Comboboxen hast, erwäge, eine Subroutine zu erstellen, die die RowSource für alle Comboboxen gleichzeitig festlegt.

FAQ: Häufige Fragen

1. Wie kann ich die Werte einer Combobox zurücksetzen?
Du kannst die Combobox einfach leeren, indem du folgendes tust:

ComboBox18.Clear

2. Kann ich die Combobox auch mit Werten aus einer anderen Excel-Datei füllen?
Ja, du kannst einen externen Workbook-Referenz verwenden. Stelle sicher, dass die Datei geöffnet ist und verwende den vollständigen Pfad.

ComboBox1.RowSource = "'[AndereDatei.xlsx]Tabelle1'!A1:A10"

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige