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

Forumthread: combobox rowsource aus anderem arbeitsblatt

combobox rowsource aus anderem arbeitsblatt
14.02.2008 11:12:08
J.
HI Leute
ich habe eine Combobox, die ich mit Daten aus einer Tabelle füllen will. Die Tabelle befindet sich jedoch auf einem anderen Arbeitsblatt.
Leider kann ich mit dem Befehl

Private Sub CommandButton1_Click()
Me.cboMaschListe.RowSource = Worksheets("Maschinen").Range("A2:A73")
Me.cboMaschListe.ListIndex = "0"
End Sub


keine Daten über einen Button in meine Combobox einfügen.
Weiß jemand einen Rat?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: combobox rowsource aus anderem arbeitsblatt
14.02.2008 11:23:29
Beverly
Hi,

Me.cboMaschListe.RowSource = Worksheets("Maschinen").Range("A2:A73").Address"




AW: combobox rowsource aus anderem arbeitsblatt
14.02.2008 11:33:32
J.
Danke für die schnelle Antwort
Leider klappt es aber immer noch nicht. Wenn ich die Combobox starte, ist kein Eintrag darin vorhanden.
Dummerweise erhalte ich aber auch keine Fehlermeldung. Wie müsste ich die Formel denn ändern, wenn ich direkt zb. Arbeitsblatt Nr. 4 ansprechen wollte?

Anzeige
AW: combobox rowsource aus anderem arbeitsblatt
14.02.2008 12:08:01
Beverly
Hi,
was verstehst du unter "direkt zb. Arbeitsblatt Nr. 4"? Meinst du den Codenamen? Dann:

= Tabelle4.Range("A2:A73").Address




AW: combobox rowsource aus anderem arbeitsblatt
14.02.2008 23:35:05
Original
Hi,
Me.cboMaschListe.RowSource = "Maschinen!A2:A73"
mfg Kurt
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Combobox RowSource aus anderem Arbeitsblatt nutzen


Schritt-für-Schritt-Anleitung

Um eine Combobox in Excel VBA mit Daten aus einem anderen Arbeitsblatt zu füllen, kannst Du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor, indem Du ALT + F11 drückst.

  2. Füge ein UserForm hinzu, falls Du noch keines hast.

  3. Füge eine Combobox (z.B. cboMaschListe) und einen Button (z.B. CommandButton1) hinzu.

  4. Doppelklicke auf den Button, um das Code-Fenster zu öffnen.

  5. Füge den folgenden Code ein:

    Private Sub CommandButton1_Click()
       Me.cboMaschListe.RowSource = "Maschinen!A2:A73"
       Me.cboMaschListe.ListIndex = 0
    End Sub
  6. Schließe den VBA-Editor und teste das UserForm. Klicke auf den Button, um die Combobox zu füllen.


Häufige Fehler und Lösungen

  • Fehler: Keine Daten in der Combobox

    • Lösung: Stelle sicher, dass der Range korrekt ist. Verwende die korrekte Adressierung wie "Maschinen!A2:A73".
  • Fehler: Fehlermeldung nicht sichtbar

    • Lösung: Überprüfe, ob Du das richtige Arbeitsblatt angesprochen hast. Nutze den Codenamen des Arbeitsblatts, falls notwendig, z.B. Tabelle4.Range("A2:A73").Address.
  • Fehler: Unzureichende Berechtigungen

    • Lösung: Stelle sicher, dass das Arbeitsblatt nicht geschützt ist.

Alternative Methoden

  1. Direktes Ansprechen des Arbeitsblatts: Anstatt RowSource zu verwenden, könntest Du die Combobox auch direkt mit einer Liste füllen:

    Private Sub CommandButton1_Click()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("Maschinen")
       Dim cell As Range
    
       For Each cell In ws.Range("A2:A73")
           Me.cboMaschListe.AddItem cell.Value
       Next cell
    End Sub
  2. Dynamische Listenerstellung: Du kannst auch VBA verwenden, um die Daten dynamisch zu laden, indem Du die Anzahl der Zeilen ermittelst und entsprechend anpasst.


Praktische Beispiele

  • Beispiel 1: Füllen der Combobox mit Werten aus einem anderen Arbeitsblatt

    Private Sub CommandButton1_Click()
       Me.cboMaschListe.RowSource = "Maschinen!A2:A73"
    End Sub
  • Beispiel 2: Verwenden von Codenamen

    Private Sub CommandButton1_Click()
       Me.cboMaschListe.RowSource = Tabelle4.Range("A2:A73").Address
    End Sub

Tipps für Profis

  • Verwenden von List statt RowSource: Wenn Du mehr Kontrolle über die Inhalte der Combobox benötigst, nutze AddItem statt RowSource.

  • Daten dynamisch laden: Du kannst die RowSource dynamisch anpassen, um nur die notwendigen Daten anzeigen zu lassen, indem Du die Anzahl der gefüllten Zeilen ermittelst.

  • Verwende Fehlerbehandlung: Implementiere On Error Resume Next, um unerwartete Fehler zu vermeiden und die Benutzererfahrung zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Combobox mit einer Dropdown-Liste füllen?
Du kannst die RowSource der Combobox auf den gewünschten Bereich setzen, z.B. Me.cboMaschListe.RowSource = "Maschinen!A2:A10".

2. Was ist der Unterschied zwischen RowSource und AddItem?
RowSource verbindet die Combobox direkt mit einem Zellbereich, während AddItem es Dir erlaubt, die Werte manuell hinzuzufügen, was mehr Flexibilität bietet.

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