Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife zum Füllen einer Combobox

Schleife zum Füllen einer Combobox
31.05.2007 08:40:48
Florian
Hallo!
Ich habe folgendens Problem: Ich möchte eine Combobox in einer Excel Mappe automatisch mit Werten füllen lassen und hab dazu folgenden Code im Internet gefunden!

Private Sub Worksheet_Activate()
ComboBox1.Value = Range("A48")
Dim az                                                ' Variable deklarieren
ComboBox1.Clear                                       ' ComboBox leeren
Cells(48, 1).Select                                   ' Cursor in Zelle A10
az = ActiveCell.Row                                   ' Zeile der aktiven Zelle
Do                                                    ' Beginn der Schleife
ComboBox1.AddItem Cells(az, 1)                        ' Eintrag hinzufügen
az = az + 1                                           ' aktive Zeile um 1 erhöhen
If az = 251 Then Exit Do                              ' wenn > 250 dann raus aus
Loop                                                  ' Schleife
End Sub


Dieser Code füllt mir die Box! Ich möchte aberreichten, dass nicht 250 Zeilen in die Combobox eingelesen werden sondern, die Schleife zum Füllen einer Combobox soll solange Daten einlesen, bis die nächste Zelle in der Spalte A leer ist!
Wie kann ich das erreichen! Ich kann den Code alleine nicht umbauen!
mfg
Florian

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife zum Füllen einer Combobox
31.05.2007 08:58:00
Bertram
Hallo Florian,
so z.B.

Private Sub Worksheet_Activate()
Dim az
az = 1'falls du in Zeile 48 anfangen willst, dann az=48 statt az=1
ComboBox1.Clear
Do
ComboBox1.AddItem Cells(az, 1)
az = az + 1
Loop Until Cells(az, 1).Value = ""
ComboBox1.ListIndex = 0
End Sub


Gruß
Bertram

Anzeige
AW: Schleife zum Füllen einer Combobox
31.05.2007 08:59:00
Hkao_Zi
Hallo Florian,
Option Explicit

Private Sub UserForm_Activate()
'* H. Ziplies                                     *
'* 31.05.07                                       *
'* erstellt von Hajo.Ziplies@WEB.de               *
'* http://Hajo-Excel.de
Dim RaFound As Range
Dim LoLetzte As Long
With Worksheets("Tabelle1")
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Set RaFound = .Range("A1:A" & LoLetzte).Find("", .Range("A" & LoLetzte), , xlWhole, ,  _
xlNext)
If RaFound Is Nothing Then
ComboBox1.RowSource = "A1:A" & Rows.Count
Else
ComboBox1.RowSource = "A1:" & RaFound.Offset(-1, 0).Address
End If
End With
End Sub



Anzeige
AW: Schleife zum Füllen einer Combobox
31.05.2007 09:01:00
xlSchwabe
Hallo Florian,
ändere die Do...Loop Schleife wie folgt:
Do While Not (IsEmpty(Cells(az, 1))) ' Beginn der Schleife
ComboBox1.AddItem Cells(az, 1) ' Eintrag hinzufügen
az = az + 1 ' aktive Zeile um 1 erhöhen
Loop
Gruß
Jürgen
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Füllen einer Combobox in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Combobox in Excel mit Werten aus einer Spalte automatisch zu füllen, kannst du den folgenden VBA-Code verwenden. Dieser Code liest die Werte ein, bis die nächste Zelle in der Spalte A leer ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt aus (z.B. Tabelle1).
  3. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Activate()
    Dim az As Long
    az = 1 ' Ändere dies auf 48, wenn du in Zeile 48 anfangen möchtest
    ComboBox1.Clear
    Do While Not IsEmpty(Cells(az, 1)) ' Schleife bis zur leeren Zelle
        ComboBox1.AddItem Cells(az, 1) ' Eintrag hinzufügen
        az = az + 1 ' aktive Zeile um 1 erhöhen
    Loop
    ComboBox1.ListIndex = 0 ' Setze den ersten Eintrag als ausgewählt
End Sub

Dieser Code verwendet die Do While-Schleife, um die Combobox zu füllen, bis eine leere Zelle erreicht wird. Das ist eine effektive Methode, um die Combobox füllen vba zu optimieren.


Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung"
    Ursache: Du hast eine Variablenzuweisung ohne Dim verwendet. Stelle sicher, dass alle Variablen korrekt deklariert sind.

  • Fehler: Combobox bleibt leer
    Ursache: Überprüfe, ob die Zellen in Spalte A tatsächlich Werte enthalten und keine leeren Zellen zwischen den Werten stehen.

  • Lösung: Verwende ComboBox1.Clear vor dem Befüllen
    Dies stellt sicher, dass die Combobox nicht mit alten Werten gefüllt wird.


Alternative Methoden

Zusätzlich zur Do While-Schleife kannst du auch den RowSource-Ansatz nutzen, um die Combobox mit einer gesamten Spalte zu füllen. Hier ein Beispiel:

Private Sub UserForm_Activate()
    Dim LoLetzte As Long
    LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row
    ComboBox1.RowSource = "A1:A" & LoLetzte
End Sub

Diese Methode ist besonders nützlich, wenn du die Combobox mit einer großen Anzahl von Daten füllen möchtest.


Praktische Beispiele

  1. Füllen der Combobox mit Werten aus Zeile 48
    Ändere die az-Variable im Code auf 48, wenn du ab dort beginnen möchtest.

  2. Füllen der Combobox mit einer spezifischen Datenreihe
    Wenn du nur bestimmte Werte aus einer Liste einfüllen möchtest, kannst du die Range-Eigenschaften anpassen.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste deinen Code schrittweise, um Fehler frühzeitig zu erkennen.
  • Kommentiere deinen Code gut, damit du später leichter nachvollziehen kannst, was jeder Teil des Codes macht.

FAQ: Häufige Fragen

1. Wie kann ich die Combobox mit Werten aus einer anderen Tabelle füllen?
Verwende die RowSource-Eigenschaft und gib den Tabellennamen an, z.B. ComboBox1.RowSource = "Tabelle2!A1:A10".

2. Was tun, wenn die Combobox nicht sichtbar ist?
Stelle sicher, dass die Combobox auf dem Arbeitsblatt oder im UserForm korrekt platziert ist und die Sichtbarkeitseinstellungen stimmen.

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