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

Forumthread: Combobox Inhalt festlegen

Combobox Inhalt festlegen
Space
Hallo,
ich habe eine Frage, wie man mein Problem lösen könnte:
Ausgangslage: Ich würde gerne in die Auswahlliste einer ComboBox Nummern auswählen können. Hierfür habe ich die Quelle des Inhaltes in Eigenschaften der ComboBox angegeben: "Abfragetabelle!A1:A50"
Jetzt habe ich 2 Probleme:
1) Da in dieser Tabelle viele Werte doppelt vorkommen zeigt er alle Werte, auch die doppelten an. Die will ich aber nicht. zum Bsp.
1
1
2
2
ich will aber nur 1,2 einmal angezeigt bekommen.
2) Die Tabelle ist bei A50 nicht zu Ende, d.h. ich will bis zum Ende durchsuchen und doppelte/dreifache/vierfache ... nummern rausschmeissen und nur einmal anzeigen.
Wie kann ich so etwas realisieren?
Danke für eure Unterstützung!
Gruß
Space
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Combobox Inhalt festlegen
22.01.2010 16:52:31
Tino
Hallo,
wo befindet sich die ComboBox, auf einer Userform oder einer Tabelle?
Gruß Tino
AW: Combobox Inhalt festlegen
22.01.2010 21:10:13
Space
Hallo,
ComboBox ist in einer UserForm. Der Inhalt für die ComboBox steht in einer dynamischen (sich stetig erweiternden) Tabelle.
Gruß
Space
AW: Combobox Inhalt festlegen
22.01.2010 21:22:38
Tino
Hallo,
dies kann man z. Bsp. so machen.
Private Sub UserForm_Initialize()
Dim oDic As Object, meAr
Dim A As Long

With Sheets("Abfragetabelle")
    meAr = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Value2
End With

Set oDic = CreateObject("Scripting.Dictionary")
For A = 1 To Ubound(meAr)
  If meAr(A, 1) <> "" Then _
  oDic(meAr(A, 1)) = 0
Next

ComboBox1.List = oDic.keys

End Sub
Gruß Tino
Anzeige
AW: Combobox Inhalt festlegen
22.01.2010 22:13:33
Space
Hallo,
Danke für die Antwort!
Wo genau muss ich das einfügen? Wenn ich auf den Button drücke oder wenn ich die ComboBox auswähle?
MfG
Space
kein Button...
22.01.2010 22:32:39
Tino
Hallo,
kommt als Code in die Userform und wird ausgelöst beim start der Userform.
Gruß Tino
AW: Combobox Inhalt festlegen
24.01.2010 14:54:19
Space
Hallo Tino,
Vielen Dank für den Code. Er funktioniert soweit. Wollte nun Spalte B anstatt Spalte A haben und habe das im Code auf .Range("B2, .....") verändert. Dennoch wird der Inhalt aus Zeilte A angezeigt. Wie kann ich das ändern ?
Und noch eine Frage. Wird aufgehört zu zählen, wenn zwischendrin eine Zelle der Spalte leer ist? z.B.:

  • Spalte A, Zeile 1:1
    Spalte A, Zeile 2:2
    Spalte A, Zeile 3:leer
    Spalte A, Zeile 4:a
    Spalte A, Zeile 5:b
    Spalte A, Zeile 6:c
    Würde der Code a,b,c noch herausgeben oder nicht!
    Danke für die Unterstützung!
    Gruß
    Space
  • Anzeige
    AW: Combobox Inhalt festlegen
    24.01.2010 15:45:35
    Tino
    Hallo,
    so müsste es für Spalte B gehen.
    meAr = .Range("B2", .Cells(.Rows.Count, 2).End(xlUp)).Value2
    zu zweitens, ja er gibt a, b, c auch aus.
    Gruß Tino
    AW: Combobox Inhalt festlegen
    25.01.2010 10:52:32
    Space
    Hallo Tino,
    hat alles geklappt. Vielen Dank!
    Gruß
    Space
    Anzeige
    ;
    Anzeige
    Anzeige

    Infobox / Tutorial

    ComboBox Inhalt festlegen in Excel


    Schritt-für-Schritt-Anleitung

    Um die Inhalte einer ComboBox in einer UserForm zu steuern und dabei doppelte Werte zu vermeiden, kannst Du folgenden VBA-Code verwenden:

    1. Öffne die UserForm, die die ComboBox enthält.
    2. Klicke mit der rechten Maustaste auf die UserForm und wähle "Code anzeigen".
    3. Kopiere den folgenden Code in das Code-Fenster:
    Private Sub UserForm_Initialize()
        Dim oDic As Object, meAr
        Dim A As Long
    
        With Sheets("Abfragetabelle")
            meAr = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Value2
        End With
    
        Set oDic = CreateObject("Scripting.Dictionary")
        For A = 1 To Ubound(meAr)
            If meAr(A, 1) <> "" Then oDic(meAr(A, 1)) = 0
        Next
    
        ComboBox1.List = oDic.keys
    End Sub
    1. Stelle sicher, dass der Name der ComboBox korrekt ist (in diesem Beispiel ComboBox1).
    2. Schließe den Code-Editor und teste die UserForm.

    Häufige Fehler und Lösungen

    • Problem: Doppelte Werte werden in der ComboBox angezeigt.
      Lösung: Stelle sicher, dass der Code den Dictionary-Objekt verwendet, um nur eindeutige Werte zu speichern.

    • Problem: Die ComboBox zeigt keine Werte an.
      Lösung: Überprüfe die Range-Angabe im Code und stelle sicher, dass sie auf die korrekten Zellen zeigt.

    • Problem: Änderungen in der Datenquelle werden nicht angezeigt.
      Lösung: Stelle sicher, dass der Code in der UserForm_Initialize-Prozedur steht, damit er beim Laden der UserForm ausgeführt wird.


    Alternative Methoden

    Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du auch folgende Methoden in Betracht ziehen:

    • Datenvalidierung: Verwende Datenvalidierung in einem anderen Bereich, um eine Dropdown-Liste zu erstellen, die auf einer Tabelle basiert. Allerdings werden damit keine doppelten Werte automatisch entfernt.

    • PivotTable: Erstelle eine PivotTable, um einzigartige Werte zu extrahieren, und nutze diese als Quelle für die ComboBox.


    Praktische Beispiele

    Angenommen, Du hast die folgenden Werte in Spalte A der "Abfragetabelle":

    1
    1
    2
    2
    3
    4

    Mit dem oben genannten VBA-Code wird die ComboBox nur die Werte 1, 2, 3, 4 anzeigen, ohne Duplikate.

    Wenn Du die Werte aus Spalte B verwenden möchtest, ändere die Range-Zeile im Code zu:

    meAr = .Range("B2", .Cells(.Rows.Count, 2).End(xlUp)).Value2

    Tipps für Profis

    • Dynamische Datenquelle: Wenn Deine Tabelle regelmäßig aktualisiert wird, kannst Du die Range dynamisch gestalten, um sicherzustellen, dass immer die neuesten Werte angezeigt werden.

    • Fehlerbehandlung: Füge eine Fehlerbehandlung in Deinen Code ein, um unerwartete Fehler beim Laden der ComboBox zu vermeiden.

    • Styling: Verwende die Eigenschaften der ComboBox, um das Aussehen und die Benutzerfreundlichkeit zu verbessern, z.B. durch das Hinzufügen von Platzhaltern oder das Anpassen der Größe.


    FAQ: Häufige Fragen

    1. Wie kann ich die ComboBox auf eine andere Spalte umstellen?
    Ändere einfach die Range-Angabe im Code von "A2" auf die gewünschte Spalte, z.B. "B2".

    2. Was passiert, wenn in der Datenquelle leere Zellen vorhanden sind?
    Der Code ignoriert leere Zellen und gibt nur die einzigartigen Werte aus, selbst wenn in der Datenquelle Lücken vorhanden sind.

    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